ReYGGTools

Ajout d'améliorations pour le site YGG (reprise de YGGTools by FERVEX)

Verzia zo dňa 17.05.2024. Pozri najnovšiu verziu.

// ==UserScript==
// @name            ReYGGTools
// @namespace       ReYGGTools
// @version         1.0
// @description     Ajout d'améliorations pour le site YGG (reprise de YGGTools by FERVEX)
// @author          Invincible812
// @supportURL      https://www.ygg.re/profile/9385666-invincible813
// @compatible      firefox Violentmonkey
// @compatible      chrome Violentmonkey
// @compatible      brave Violentmonkey
// @compatible      opera Violentmonkey
// @icon            https://i.ibb.co/dJ0kSQq/Re-YGGTools.png
// @include         https://*.ygg.*
// @include         https://ygg.*
// @require         https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js
// @ressource       https://cdn.datatables.net/v/bs4/dt-1.10.24/cr-1.5.3/r-2.2.7/rr-1.2.7/datatables.min.css
// ==/UserScript==

var ferveX = jQuery.noConflict(true);

ferveX(document).ready(function() {
    var url = window.location.href;

    var styleBouton = "margin:15px 8px 0; display:inline-block; border-radius:25px; padding:8px 15px; text-transform:uppercase; background:#4e5c6f; color:#fff; font-size:13px; font-weight:700; transition:background 0.5s ease;";
    var styleBoutonF = "margin:15px 8px 0; display:inline-block; border-radius:25px; padding:8px 15px; text-transform:uppercase; background:#267bbb; color:#fff; font-size:13px; font-weight:700; transition:background 0.5s ease;";
    var styleBoutonS = "margin:15px 8px 0; display:inline-block; border-radius:25px; padding:8px 15px; text-transform:uppercase; background:#885599; color:#fff; font-size:13px; font-weight:700; transition:background 0.5s ease;";

    ferveX("head link[rel='stylesheet']").last().after('<style type="text/css">#top_panel{z-index: 1000}.promo-container{display:none!important}body #middle .search-criteria td button.solo{width:180px!important}.w65{width:65px}.f16{font-size:16px;vertical-align:text-top;}.butonFervexHover{background:#22282f!important;color:#fff!important;text-decoration:none!important}.focus-wrap-nav .p-navEl-link[data-nav-id=moncompte]:before{content:"\\f007"}.focus-wrap-nav .p-navEl-link[data-nav-id=messagerie]:before{content:"\\f0e0"}.focus-wrap-nav .p-navEl-link[data-nav-id=uploadtorrent]:before{content:"\\f093"}.focus-wrap-nav .p-navEl-link[data-nav-id=chercheCopain]:before{content:"\\f002"}.focus-wrap-nav .p-navEl-link[data-nav-id=voirfavoris]:before{content:"\\f02e"}.fervexTools{box-shadow:0px 0px 4px rgba(0,0,0,.5)!important;border:solid 1px #777;z-index:999999;background:#dff0d8;}.fervexTools:hover{box-shadow:0px 3px 10px rgba(0,0,0,.6)!important}.fervexTools1{position:fixed;padding:2px 3px;border-radius:4px;font-size:12px}.fervexTools2{position:absolute;padding:4px 3px 4px 5px;border-radius:50%;width:25px;height:25px;line-height:1.15}.fervexTime{position:absolute;top:35px;width:100%;text-align:center;color:#eee;}.fervexTime .badge{font-size:100%}.fervexTime .badge span{color:#6cded4}#fervextip{position:fixed;z-index:1070;display:inline-block;font-size:.875rem;text-transform:none;font-weight:400;font-style:normal;}#fervextip .tipBody{display:inline-block;max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:.25rem;}.config-recherche-bas,.config-recherche-popup,.config-recherche-date-desc,.config-recherche-date-asc,.config-sidebar-on,.config-sidebar-off,.config-notifs-on,.config-notifs-off,.config-notifs-total-on,.config-notifs-total-off,.config-preview-on,.config-preview-off,.config-preview2-on,.config-preview2-off{padding:4px 6px;font-size:0.875em;text-transform:inherit;font-weight:400;font-family:inherit}#nfoModal .modal-body pre{white-space: pre-wrap}.results .dataTables_info {display: inherit!important}.m-2{margin:0.5rem}.ico_spin {animation: spin-animation 1s infinite;animation-timing-function: linear;}@keyframes spin-animation {0% {transform: rotate(0deg);}100% {transform: rotate(360deg);}}#middle .content table.notif td{padding:6px 10px!important;font-size:12px;}#middle table.notif tbody td .btn{margin-top:0;}#middle table.notif td:first-child {width:130px}.block-outer-main+.block-outer-main {margin-left:15px;}</style>');
    ferveX("body").prepend('<div class="fervexTools fervexTools1" style="display:none"><a href="#" style="text-decoration:none" title="Recherche torrent sur YGG" target="_blank">Recherche</a></ul>');

    /* mousetrap v1.6.5 craig.is/killing/mice */
    (function(q,u,c){function v(a,b,g){a.addEventListener?a.addEventListener(b,g,!1):a.attachEvent("on"+b,g)}function z(a){if("keypress"==a.type){var b=String.fromCharCode(a.which);a.shiftKey||(b=b.toLowerCase());return b}return n[a.which]?n[a.which]:r[a.which]?r[a.which]:String.fromCharCode(a.which).toLowerCase()}function F(a){var b=[];a.shiftKey&&b.push("shift");a.altKey&&b.push("alt");a.ctrlKey&&b.push("ctrl");a.metaKey&&b.push("meta");return b}function w(a){return"shift"==a||"ctrl"==a||"alt"==a||
        "meta"==a}function A(a,b){var g,d=[];var e=a;"+"===e?e=["+"]:(e=e.replace(/\+{2}/g,"+plus"),e=e.split("+"));for(g=0;g<e.length;++g){var m=e[g];B[m]&&(m=B[m]);b&&"keypress"!=b&&C[m]&&(m=C[m],d.push("shift"));w(m)&&d.push(m)}e=m;g=b;if(!g){if(!p){p={};for(var c in n)95<c&&112>c||n.hasOwnProperty(c)&&(p[n[c]]=c)}g=p[e]?"keydown":"keypress"}"keypress"==g&&d.length&&(g="keydown");return{key:m,modifiers:d,action:g}}function D(a,b){return null===a||a===u?!1:a===b?!0:D(a.parentNode,b)}function d(a){function b(a){a=
            a||{};var b=!1,l;for(l in p)a[l]?b=!0:p[l]=0;b||(x=!1)}function g(a,b,t,f,g,d){var l,E=[],h=t.type;if(!k._callbacks[a])return[];"keyup"==h&&w(a)&&(b=[a]);for(l=0;l<k._callbacks[a].length;++l){var c=k._callbacks[a][l];if((f||!c.seq||p[c.seq]==c.level)&&h==c.action){var e;(e="keypress"==h&&!t.metaKey&&!t.ctrlKey)||(e=c.modifiers,e=b.sort().join(",")===e.sort().join(","));e&&(e=f&&c.seq==f&&c.level==d,(!f&&c.combo==g||e)&&k._callbacks[a].splice(l,1),E.push(c))}}return E}function c(a,b,c,f){k.stopCallback(b,
b.target||b.srcElement,c,f)||!1!==a(b,c)||(b.preventDefault?b.preventDefault():b.returnValue=!1,b.stopPropagation?b.stopPropagation():b.cancelBubble=!0)}function e(a){"number"!==typeof a.which&&(a.which=a.keyCode);var b=z(a);b&&("keyup"==a.type&&y===b?y=!1:k.handleKey(b,F(a),a))}function m(a,g,t,f){function h(c){return function(){x=c;++p[a];clearTimeout(q);q=setTimeout(b,1E3)}}function l(g){c(t,g,a);"keyup"!==f&&(y=z(g));setTimeout(b,10)}for(var d=p[a]=0;d<g.length;++d){var e=d+1===g.length?l:h(f||
A(g[d+1]).action);n(g[d],e,f,a,d)}}function n(a,b,c,f,d){k._directMap[a+":"+c]=b;a=a.replace(/\s+/g," ");var e=a.split(" ");1<e.length?m(a,e,b,c):(c=A(a,c),k._callbacks[c.key]=k._callbacks[c.key]||[],g(c.key,c.modifiers,{type:c.action},f,a,d),k._callbacks[c.key][f?"unshift":"push"]({callback:b,modifiers:c.modifiers,action:c.action,seq:f,level:d,combo:a}))}var k=this;a=a||u;if(!(k instanceof d))return new d(a);k.target=a;k._callbacks={};k._directMap={};var p={},q,y=!1,r=!1,x=!1;k._handleKey=function(a,
d,e){var f=g(a,d,e),h;d={};var k=0,l=!1;for(h=0;h<f.length;++h)f[h].seq&&(k=Math.max(k,f[h].level));for(h=0;h<f.length;++h)f[h].seq?f[h].level==k&&(l=!0,d[f[h].seq]=1,c(f[h].callback,e,f[h].combo,f[h].seq)):l||c(f[h].callback,e,f[h].combo);f="keypress"==e.type&&r;e.type!=x||w(a)||f||b(d);r=l&&"keydown"==e.type};k._bindMultiple=function(a,b,c){for(var d=0;d<a.length;++d)n(a[d],b,c)};v(a,"keypress",e);v(a,"keydown",e);v(a,"keyup",e)}if(q){var n={8:"backspace",9:"tab",13:"enter",16:"shift",17:"ctrl",
18:"alt",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"ins",46:"del",91:"meta",93:"meta",224:"meta"},r={106:"*",107:"+",109:"-",110:".",111:"/",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},C={"~":"`","!":"1","@":"2","#":"3",$:"4","%":"5","^":"6","&":"7","*":"8","(":"9",")":"0",_:"-","+":"=",":":";",'"':"'","<":",",">":".","?":"/","|":"\\"},B={option:"alt",command:"meta","return":"enter",
escape:"esc",plus:"+",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"},p;for(c=1;20>c;++c)n[111+c]="f"+c;for(c=0;9>=c;++c)n[c+96]=c.toString();d.prototype.bind=function(a,b,c){a=a instanceof Array?a:[a];this._bindMultiple.call(this,a,b,c);return this};d.prototype.unbind=function(a,b){return this.bind.call(this,a,function(){},b)};d.prototype.trigger=function(a,b){if(this._directMap[a+":"+b])this._directMap[a+":"+b]({},a);return this};d.prototype.reset=function(){this._callbacks={};
this._directMap={};return this};d.prototype.stopCallback=function(a,b){if(-1<(" "+b.className+" ").indexOf(" mousetrap ")||D(b,this.target))return!1;if("composedPath"in a&&"function"===typeof a.composedPath){var c=a.composedPath()[0];c!==a.target&&(b=c)}return"INPUT"==b.tagName||"SELECT"==b.tagName||"TEXTAREA"==b.tagName||b.isContentEditable};d.prototype.handleKey=function(){return this._handleKey.apply(this,arguments)};d.addKeycodes=function(a){for(var b in a)a.hasOwnProperty(b)&&(n[b]=a[b]);p=null};
d.init=function(){var a=d(u),b;for(b in a)"_"!==b.charAt(0)&&(d[b]=function(b){return function(){return a[b].apply(a,arguments)}}(b))};d.init();q.Mousetrap=d;"undefined"!==typeof module&&module.exports&&(module.exports=d);"function"===typeof define&&define.amd&&define(function(){return d})}})("undefined"!==typeof window?window:null,"undefined"!==typeof window?document:null);


    /* fonctions cookies */
    function setCookie(name,value,days) {
        var expires = "";
        if (days) {
            var date = new Date();
            date.setTime(date.getTime() + (days*24*60*60*1000));
            expires = "; expires=" + date.toUTCString();
        }
        document.cookie = name + "=" + (value || "")  + expires + ";domain=.ygg.re;path=/";
    }

    function getCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    }

    /* fonction conversion octets */
    function formatOctets(bytes, decimals = 2) {
        if (bytes === 0) return '~0';
        const k = 1024;
        const dm = decimals < 0 ? 0 : decimals;
        const sizes = ['Octets', 'Ko', 'Mo', 'Go', 'To', 'Po', 'Eo', 'Zo', 'Yo'];
        const i = Math.floor(Math.log(bytes) / Math.log(k));
        return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + sizes[i];
    }

    /* calcul avancement */
    ferveX(document).ready(function() {
        var up = ferveX('#top_panel .ct li:first-child strong:first-child').text().trim();
        var upUnite = up.substring(up.length-2);
        if (upUnite == 'To') {
            up = up.slice(0, -2) * 1099511627776;
        } else {
            up = up.slice(0, -2) * 1073741824;
        }
        var down = ferveX('#top_panel .ct li:first-child strong:nth-child(2)').text().trim();
        var downUnite = down.substring(down.length-2);
        if (downUnite == 'To') {
            down = down.slice(0, -2) * 1099511627776;
        } else {
            down = down.slice(0, -2) * 1073741824;
        }
        var avancement = parseFloat(up) - parseFloat(down);
        ferveX('#top_panel .ct li:first-child').after('<li><strong>' + (avancement<0 ? '<1 !' : formatOctets(avancement)) + '</strong></li>');
    });

    /* Sélecteur pour Recherche dynamique */
    if (!window.x) {
        x = {};
    }
    x.Selector = {};
    x.Selector.getSelected = function() {
        var t = '';
        if (window.getSelection) {
            t = window.getSelection();
        } else if (document.getSelection) {
            t = document.getSelection();
        } else if (document.selection) {
            t = document.selection.createRange().text;
        }
        return t;
    }

    var pageX;
    var pageY;
    var fervexTemp = '0';

    /* Icone recherche dynamique */
    var iconeRecherche ='ico_search';
    if (url.indexOf("/forum/") > -1) {
        iconeRecherche = 'fa fa-search';
    }

    const sidebar = (getCookie('fervex_sidebar') == 'on') ? " checked" : "";
    const notifs = (getCookie('fervex_notifs') == 'off') ? "" : " checked";
    const notifs_total = (getCookie('fervex_notifs_total') == 'off') ? "" : " checked";
    const preview = (getCookie('fervex_preview') == 'on') ? " checked" : "";
    const preview_delai = (getCookie('fervex_preview_delai')!== null) ? getCookie('fervex_preview_delai') : 400;
    const preview_height = (getCookie('fervex_preview_height')!== null) ? getCookie('fervex_preview_height') : 300;
    const preview2= (getCookie('fervex_preview2') == 'on') ? " checked" : "";
    const darkmode= (getCookie('re_darkmode') == 'on') ? " checked" : "";
    ferveX("body")
        .prepend('<div id="fervexConf" style="display:none;position:fixed;right:10px;top:10px;background:#21242b;z-index:999999;border:1px solid #777;color:#ddd;text-align:center;font-size: 13px; max-height:90vh;  overflow-x:auto;">'+
                 '    <div style="border-bottom:1px solid #777; padding:8px; background:#222; cursor:move" id="fervexConfMenu">'+
                 '        <b>ReYGGTools</b>'+
                 '    </div>'+
                 '    <div style="border-bottom:1px solid #777; padding:10px 10px 12px">'+
                 '        <p style="margin: 0 0 7px">Mode sombre (Dark Mode)</p>'+
                 '        <p style="margin-bottom:0">'+
                 '            <button type="button" class="btn btn-sm btn-primary config-darkmode-on">Oui</button> '+
                 '            <button type="button" class="btn btn-sm btn-primary config-darkmode-off">Non</button>'+
                 '        </p>'+
                 '    </div>'+
                 '    <div style="border-bottom:1px solid #777; padding:10px 10px 12px">'+
                 '        <p style="margin: 0 0 7px">Recherche sur sélection</p>'+
                 '        <p style="margin-bottom:0">'+
                 '            <button type="button" class="btn btn-sm btn-primary config-recherche-bas">Bas de l\'écran</button> '+
                 '            <button type="button" class="btn btn-sm btn-primary config-recherche-popup">Popup</button>'+
                 '        </p>'+
                 '    </div>'+
                 '    <div style="border-bottom:1px solid #777; padding:10px 10px 12px">'+
                 '        <p style="margin: 0 0 7px">Recherche par défaut</p>'+
                 '        <p style="margin-bottom:0">'+
                 '            <button type="button" class="btn btn-sm btn-primary config-recherche-date-desc">Plus récent</button> '+
                 '            <button type="button" class="btn btn-sm btn-primary config-recherche-date-asc">Plus ancien</button>'+
                 '        </p>'+
                 '    </div>'+
                 '    <div style="border-bottom:1px solid #777; padding:10px 10px 12px">'+
                 '        <p style="margin: 0 0 7px">Afficher la sidebar ?</p>'+
                 '        <p style="margin-bottom:0">'+
                 '            <button type="button" class="btn btn-sm btn-primary config-sidebar-on">Oui</button> '+
                 '            <button type="button" class="btn btn-sm btn-primary config-sidebar-off">Non</button>'+
                 '        </p>'+
                 '    </div>'+
                 '    <div style="border-bottom:1px solid #777; padding:10px 10px 12px">'+
                 '        <p style="margin: 0 0 7px">Afficher lien "notifications" si 0 notif ?</p>'+
                 '        <p style="margin-bottom:0">'+
                 '            <button type="button" class="btn btn-sm btn-primary config-notifs-on">Oui</button> '+
                 '            <button type="button" class="btn btn-sm btn-primary config-notifs-off">Non</button>'+
                 '        </p>'+
                 '    </div>'+
                 '    <div style="border-bottom:1px solid #777; padding:10px 10px 12px">'+
                 '        <p style="margin: 0 0 7px">Afficher compteur notifs total ?</p>'+
                 '        <p style="margin-bottom:0">'+
                 '            <button type="button" class="btn btn-sm btn-primary config-notifs-total-on">Oui</button> '+
                 '            <button type="button" class="btn btn-sm btn-primary config-notifs-total-off">Non</button>'+
                 '        </p>'+
                 '    </div>'+
                 '    <div style="border-bottom:1px solid #777; padding:10px 10px 12px">'+
                 '        <p style="margin: 0 0 7px">Afficher preview (survol) ?</p>'+
                 '        <p style="margin-bottom:10px">'+
                 '            <button type="button" class="btn btn-sm btn-primary config-preview-on">Oui</button> '+
                 '            <button type="button" class="btn btn-sm btn-primary config-preview-off">Non</button>'+
                 '        </p>'+
                 '        <p style="margin-bottom:10px">'+
                 '            <input type="range" class="height_preview" min="100" max="600" step="10" value="'+preview_height+'"><br>'+
                 '            Hauteur image : <span class="height_preview_value">'+preview_height+'</span> px'+
                 '        </p>'+
                 '        <p style="margin-bottom:0">'+
                 '            <input type="range" class="tempo_preview" min="100" max="1000" step="100" value="'+preview_delai+'"><br>'+
                 '            Délai : <span class="tempo_preview_value">'+preview_delai+'</span> ms'+
                 '        </p>'+
                 '    </div>'+
                 '    <div style="border-bottom:1px solid #777; padding:10px 10px 12px">'+
                 '        <p style="margin: 0 0 7px">Afficher preview (fixe) ?<br><em style="color:#ccc;font-size:11px">[expérimental]</em></p>'+
                 '        <p style="margin-bottom:0">'+
                 '            <button type="button" class="btn btn-sm btn-primary config-preview2-on">Oui</button> '+
                 '            <button type="button" class="btn btn-sm btn-primary config-preview2-off">Non</button>'+
                 '        </p>'+
                 '    </div>'+
                 '    <div style="padding:8px; background:#222; cursor: pointer;" id="close_menu_reyggtools">Fermer</div>'+
                 '</div>'
                );

    ferveX('#update-settings')
        .append('<h2>Paramètres ReYGGTools</h2>' +
                '<table>' +
                '	<tbody>' +
                '		<tr>' +
                '			<td style="width:240px">' +
                '				<a type="button" class="my-1 mr-1 btn btn-sm btn-primary config-recherche-bas">Bas de l\'écran</a>' +
                '				<a type="button" class="my-1 btn btn-sm btn-primary config-recherche-popup">En popup</a>' +
                '			</td>' +
                '			<td><strong>Recherche sur sélection de texte</strong> <small>&nbsp; (Affiche un bouton en bas d\écran ou en popup pour lancer une recherche torrent du texte sélectionné)</small></td>' +
                '		<tr>' +
                '		<tr>' +
                '			<td>' +
                '				<a type="button" class="my-1 mr-1 btn btn-sm btn-primary config-recherche-date-desc">Plus récent</a>' +
                '				<a type="button" class="my-1 btn btn-sm btn-primary config-recherche-date-asc">Plus ancien</a>' +
                '			</td>' +
                '			<td><strong>Tri du moteur de recherche par défaut</strong> <small>&nbsp; (Affiche les torrents plus récents/anciens en premier)</small></td>' +
                '		<tr>' +
                '		<tr>' +
                '			<td>' +
                '				<div class="pretty p-default">' +
                '					<input type="checkbox" id="config_sidebar"'+sidebar+'>' +
                '					<div class="state"><label></label></div>' +
                '				</div>' +
                '			</td>' +
                '			<td><strong>Afficher la sidebar</strong> <small>&nbsp; (Afficher la barre latérale de gauche contenant les catégories des torrents)</small></td>' +
                '   <tr>' +
                '   <td>' +
                '				<div class="pretty p-default">' +
                '					<input type="checkbox" id="config_darkmode"'+darkmode+'>' +
                '					<div class="state"><label></label></div>' +
                '				</div>' +
                '			</td>' +
                '			<td><strong>Afficher en mode sombre (YGGDark)</strong> <small>&nbsp; (Affichage de YGG et de son forum dans un thème sombre)</small></td>' +
                '		<tr>' +
                '		<tr>' +
                '			<td>' +
                '				<div class="pretty p-default">' +
                '					<input type="checkbox" id="config_notifs"'+notifs+'>' +
                '					<div class="state"><label></label></div>' +
                '				</div>' +
                '			</td>' +
                '			<td><strong>Afficher le lien "notifications" si 0 notif</strong> <small>&nbsp; (Afficher le lien "notifications" dans le menu en haut de page même si aucun notif reçue)</small></td>' +
                '		<tr>' +
                '		<tr>' +
                '			<td>' +
                '				<div class="pretty p-default">' +
                '					<input type="checkbox" id="config_notifs_total"'+notifs_total+'>' +
                '					<div class="state"><label></label></div>' +
                '				</div>' +
                '			</td>' +
                '			<td><strong>Afficher le compteur de notifs total</strong> <small>&nbsp; (Afficher la bulle verte dans le menu en haut de page)</small></td>' +
                '		<tr>' +
                '		<tr>' +
                '			<td>' +
                '				<div class="pretty p-default">' +
                '					<input type="checkbox" class="my-1" id="config_preview"'+preview+'>' +
                '					<div class="state"><label></label></div>' +
                '				</div>' +
                '			</td>' +
                '			<td>' +
                '				<p class="mb-2"><strong>Afficher les prévisualisations de jaquettes sur les torrents au survol de la souris</strong></p>' +
                '				<p class="mb-2"><input type="range" class="height_preview" min="100" max="600" step="10" value="'+preview_height+'"> Hauteur image : <span class="height_preview_value">'+preview_height+'</span> px</p>' +
                '				<p><input type="range" class="tempo_preview" min="100" max="1000" step="100" value="'+preview_delai+'"> Délai : <span class="tempo_preview_value">'+preview_delai+'</span> ms</p>' +
                '			</td>' +
                '		<tr>' +
                '		<tr>' +
                '			<td>' +
                '				<div class="pretty p-default">' +
                '					<input type="checkbox" class="my-1" id="config_preview2"'+preview2+'>' +
                '					<div class="state"><label></label></div>' +
                '				</div>' +
                '			</td>' +
                '			<td><strong>Afficher les miniatures des jaquettes dans les listes de torrents</strong></td>' +
                '		<tr>' +
                '	</tbody>' +
                '</table>');

    function TheDarkSide(){

      function addGlobalStyle(css) {
          var head, style;
          head = document.getElementsByTagName('head')[0];
          if (!head) { return; }
          style = document.createElement('style');
          style.type = 'text/css';
          style.innerHTML = css;
          head.appendChild(style);
      }

      var url = window.location.href;
      if (url.indexOf("/team/") === -1) {
        if (url.indexOf("/forum/") === -1) {
          addGlobalStyle(`
            ::-webkit-scrollbar {
              width: 8px;
            }
            ::-webkit-scrollbar-track {
              background: #575a5c ;
              border-radius: 10px;
            }
            ::-webkit-scrollbar-thumb {
              background: #1b3544;
              border-radius: 10px;
            }
            ::-webkit-scrollbar-thumb:hover {
              background: #2b2f31;
            }

            #middle .default,
            #middle .detail-account {
              background: #2a313a!important;
              color: #cdcdcd!important;
            }
            #middle .default .date, #middle #description .date {
              background: #2a313a!important;
              border-top: none!important;
            }

            form label {
              color: #aaa;
              margin-top: 2px;
            }

            .results {
              box-shadow: 0 0 10px rgb(0 0 0 / 15%)!important;
              background: #2a313a!important;
            }
            .results thead th {
              color: #ddd!important;
              background: #1d232a!important;
            }
            results tr:nth-child(odd) td,
            #middle table.notif tbody tr:nth-child(odd) td {
              background: #2a313a!important;
            }

            .results td,
            #middle table.notif tbody td,
            #middle table td {
              background: #252c35!important;
              color: #aaa;
              border: 1px solid transparent!important;
              border-right: 1px solid #212121!important;
              border-bottom: 1px solid #212121!important;
              font-size: 12px;
            }
            #middle .results table tbody tr:nth-child(odd) td {
              background: #2a313a!important;
            }
            #torrents .results #DataTables_Table_0_filter > label > input {
              background: #1d232a;
              color: #fff;
            }

            #middle .search-criteria,
            #middle .notifications {
              background: #1d232a!important;
            }
            #middle .search-criteria td,
            #middle .detail-account td{
              background: #1d232a!important;
              padding: 9px 8px!important;
              border-right: 1px solid transparent!important;
              border-bottom: 1px solid transparent!important;
            }

            #middle table td a:not(.text-warning):not(.text-danger) {
              color: #eee!important;
            }
            #middle .detail-account td a {
              color: #7191bd!important;
            }

            #middle table td a.butt {
              border-radius: 8px;
              border: 2px solid #5ad9a4;
              top: 0px;
              font-weight: 500;
              text-transform: inherit;
              font-size: 12px;
              padding: 4px 6px;
              color: #ffffff!important;
            }

            #middle .search-criteria td.adv_search_option, #middle .search-criteria td:first-child {
              background: #1d232a!important;
            }

            .search-criteria tr:first-child{
              padding-top:5px!important;
            }
            .search-criteria tr:last-child{
              padding-bottom:5px!important;
            }

            #middle .search-criteria tr td:first-child,.search-criteria tr td:first-child, .search-criteria td.adv_search_option {
              color: #bbb!important;
            }
            #middle .search-criteria td .input-table {
              border: none!important;
              background-color: rgba(250,250,250,.03)!important;
              color: #ddd!important;
            }
            #middle .search-criteria td.alone {
              background: #1d232a!important
            }

            .select2-container--bootstrap .select2-selection {
              background-color: rgba(250,250,250,.03)!important;
              border: none!important;
            }
            .select2-selection__rendered, .select2-selection__rendered {
              color: #555555!important;
              background-color: unset!important;
              border: none!important;
            }
            .select2-container--bootstrap .select2-selection--single .select2-selection__rendered {
              color: #ddd!important;
              padding: 0!important;
            }
            .select2-dropdown {
              color: #aaa;
              background-color: #242a31;
              border: 1px solid #1b1e24;
            }
            .select2-container--bootstrap .select2-search--dropdown .select2-search__field {
              background-color: #1d232a;
              border: 1px solid #2b2f31;
              color: #aaa;
            }
            .select2-container--bootstrap .select2-results__option[aria-selected=true] {
              background-color: #1d232a;
              color: #ebebeb;
            }

            select.form-control:not([size]):not([multiple]):not(.select-tracker) {
              height: 40px!important;
              background: #1d232a!important;
              color: #aaa!important;
            }
            #upload-torrent input[type=text]{
              background: #1d232a!important;
            }
            #middle #upload-torrent .default input,
            #middle #torrent_description {
              background: #1d232a!important;
              color: #aaa!important;
            }

            #middle .pagination {
              background: #2a313a!important;
            }
            #middle .pagination li {
              border-left: 1px solid #1d232a!important;
            }
            #middle .pagination li a {
              background: #343c46!important;
              color: #999!important;
            }

            #middle .content .results .dataTables_wrapper {
              margin-bottom: 28px!important;
            }
            #middle .content .results .dataTables_info {
              color: #777!important;
            }

            #middle .add-comment, #middle .add-note {
              background: #2b2f31;
              border-bottom: 3px solid #2b2f31;
            }

            #middle .add-comment textarea, #middle .add-note textarea {
              color: #aaa;
            }

            .wysibb {
              border: 1px solid #1c1c1c;
              position: relative;
              background: #1f2224;
              font-size: 13px;
            }

            @media screen and (min-width: 992px) {
              .wysibb .wysibb-toolbar {
                background: #222;
                border-bottom: 1px solid #1c1c1c;
              }

              .wysibb .wysibb-toolbar .wysibb-toolbar-container {
                margin: 0;
                border-right: 1px solid #1c1c1c;
                padding: 0;
                display: inline-block;
              }

              .wysibb .wysibb-toolbar .wysibb-toolbar-container .wysibb-toolbar-btn .wbb-list {
                border: 1px solid #1f2224;
                box-shadow: 0 3px 20px #111;
                background: #2a313c;
                color: #aaa;
              }

              .wbb-list .sc {
                border: 0;
              }
            }

            .wysibb .wysibb-toolbar .wysibb-toolbar-container .wysibb-toolbar-btn .fonticon,
            .wysibb .wysibb-toolbar .wysibb-toolbar-container .wysibb-toolbar-btn span.btn-inner,
            .wbb-select .val {
              color: #aaa;
              text-shadow: none;
            }
            .wysibb .wysibb-toolbar .wysibb-toolbar-container .wysibb-toolbar-btn:hover,
            .wysibb .wysibb-toolbar .wysibb-toolbar-container .wysibb-toolbar-btn.wbb-select:hover,
            .wysibb .wysibb-toolbar .wysibb-toolbar-container .wysibb-toolbar-btn.wbb-dropdown:hover {
              background: #111;
            }
            .wysibb .wysibb-toolbar .wysibb-toolbar-container .wysibb-toolbar-btn.wbb-select.on,
            .wysibb .wysibb-toolbar .wysibb-toolbar-container .wysibb-toolbar-btn.wbb-select.on:active {
              border: 1px solid #333;
              background: #111;
              box-shadow: none;
            }
            .wysibb .wysibb-toolbar .wysibb-toolbar-container .wysibb-toolbar-btn:hover .fonticon {
              color: #aaa;
            }

            .wysibb .wysibb-text {
              color: #aaa;
              font-size: 13px;
            }

            #commentary {
              background: #2a313c;
            }
            #middle .comment h4, #middle #commentary h4 {
              color: #ddd;
            }
            #commentary li {
              border-top: 0;
            }
            #commentary li .left {
              border: 1px solid #1f2224;
              border-radius: 8px;
              background: #22282f;
            }
            #commentary li .left .rang {
              padding: 4px;
              border-radius: 0;
            }
            #commentary li .left .name {
              font-size: 12px;
              padding: 6px 0;
              color: #aaa;
            }
            #commentary li .left .ratio {
              font-size: 9.8px;
              padding: 6px 0;
              border-top: 1px solid #1f2224;
            }
            #commentary li .message {
              color: #aaa;
              background: #22282f;
              border: 1px solid #1f2224;
              font-size: 13px;
              border-radius: 6px;
            }
            #commentary li .message a {
              font-weight: 600;
              color: #7191bd;
            }
            #commentary li .message .add {
              font-size: 13px;
              color: #dfdfdf;
              padding-bottom: 10px;
              margin-bottom: 10px;
              border-bottom: 1px solid #1f2224;
            }
            #commentary li .message:before {
              border-right: 15px solid #22282f;
            }
            #commentary li .message:after {
              border-right: 16px solid #1f2224;
            }

            a.sender-badge {
              background: #222222!important;
            }
            a.btn.grey {
              background: #575a5c!important;
              border: 2px solid transparent;
              color: #fff!important;
            }
            a.btn.grey:hover {
              background: #4b4d4f!important;
            }
            .table-bordered, .table-bordered td, .table-bordered th {
              border-color: #222!important;
            }
            .results td:nth-child(8) {
              color: #01ca01!important;
            }
            .results td:nth-child(9) {
              color: #fd1111!important;
            }


            .card {
              background-color: #2a313a!important;
              color: #cdcdcd;
            }
            .card-footer {
              color: rgba(255,255,255,.4)!important;
              border-top: 1px solid rgba(255,255,255,.1)!important;
              background: #2a313a!important;
            }

            #feeds .table thead th {
              border-bottom: 1px solid #191919!important;
              border-top: 1px solid #191919!important;
              background: #1d232a!important;
            }
          `);

        } else {
          addGlobalStyle(`
            ::-webkit-scrollbar {
              width: 8px;
            }
            ::-webkit-scrollbar-track {
              background: #575a5c ;
              border-radius: 10px;
            }
            ::-webkit-scrollbar-thumb {
              background: #1b3544;
              border-radius: 10px;
            }
            ::-webkit-scrollbar-thumb:hover {
              background: #2b2f31;
            }

            html {
              color: #aaa;
              background-image: none!important;
              background-color: #1f2224!important;
            }

            a {
              color: #ececec;
              text-decoration: none
            }

            a:hover {
              color: #6bb2df
            }

            svg {
              fill: currentColor
            }

            .u-concealed,.u-concealed a,.u-cloaked,.u-cloaked a,.u-concealed--icon,.u-concealed--icon a {
              text-decoration: inherit !important;
              color: inherit !important
            }

            a.u-concealed:hover,.u-concealed a:hover {
              text-decoration: underline !important
            }

            a.u-concealed:hover .fa,.u-concealed a:hover .fa {
              color: #6bb2df
            }

            a.u-concealed--icon:hover .fa,.u-concealed--icon a:hover .fa {
              color: #6bb2df
            }

            .u-textColor {
              color: #aaa
            }

            .u-dimmed {
              color: #969696
            }

            .u-muted {
              color: #818181
            }

            .u-dimmed a,.u-muted a,.u-faint a {
              color: inherit;
              text-decoration: none
            }

            .u-featuredText {
              color: #49a1d8
            }

            .u-accentText {
              color: #49a1d8
            }

            .u-accentText a {
              color: #49a1d8
            }

            .pairs.pairs--plainLabel>dt {
              color: inherit
            }

            .pairs>dt {
              color: #818181
            }

            .categoryList-itemDesc {
              color: #818181;
            }

            .categoryList-header {
              color: #49a1d8;
            }

            .categoryList-header.categoryList-header--muted {
              color: #818181
            }

            .categoryList-header a {
              color: inherit;
              text-decoration: none
            }

            .categoryList-link {
              color: inherit
            }

            .categoryList-toggler {
              color: inherit
            }

            .siropuShoutboxHeader {
              border-bottom: none;
              color: #aaa
            }
            .siropuShoutbox form {
              margin-bottom: 20px;
            }

            .blocks-header {
              color: #818181
            }

            .blocks-header.blocks-header--strong {
              color: #969696
            }

            .blocks-header.blocks-header--strong .blocks-desc {
              color: #818181
            }

            .block-outer .block-outer-hint {
              color: #818181
            }

            .block-container, .block--messages .message {
              color: #aaa;
              background: #22282f;
              border: 1px solid #1e1f1f;
            }

            html:not(.focus-grid) .node-body {
              padding: 0
            }

            .node+.node {
              border-top: 1px solid #191b1c
            }

            .block--messages .message, .block--messages .block-row {
              color: inherit;
              background: #22282f;
              border: 1px solid #202020;
              border-radius: 4px;
            }

            .message-cell.message-cell--user {
              padding: 10px;
            }

            .message-cell.message-cell--user, .message-cell.message-cell--action {
              background: #2a313c;
              border-right: 1px solid #1f2224;
            }

            .message-cell.message-cell--main {
              padding-left: 0;
            }

            .message-cell {
              padding: 10px 0;
            }

            .message-cell.message-cell--alert {
              color: #e8ebed;
              background: #16435e;
              padding-left: 10px;
            }

            message-cell.message-cell--alert a {
              color: #6bb2df;
            }

            .message-attribution {
              border-bottom: 1px solid #1f2224;
              padding: 0 12px 8px;
            }

            .message-content {
              margin-bottom: 10px;
              padding: 0 12px;
            }

            .message-content a {
              text-decoration: none;
            }

            .message-footer {
              border-top: 1px solid #1f2224;
              padding: 0 12px;
            }

            .message-signature {
              border-top: 1px solid #1f2224;
              padding-top: 6px;
              color: #777;
            }

            .message-actionBar .actionBar-set {
              margin-top: 8px;
            }

            .editorSmilies {
              border: 1px solid #1c1c1c;
              background: #22282f;
            }

            .message-editorWrapper {
              padding: 0 10px;
            }

            .attachment {
              background: #1f2224;
              border: 1px solid #383b3d;
            }

            .fr-toolbar {
              color: #f5f5f5;
              background: #222;
              border-radius: 2px;
              -moz-border-radius: 2px;
              -webkit-border-radius: 2px;
              border: 1px solid #1c1c1c;
              border-top: 1px solid #1c1c1c;
            }

            .fr-toolbar .fr-command.fr-btn, .fr-popup .fr-command.fr-btn {
              background: transparent;
              color: #aaa;
            }

            .fr-command.fr-btn+.fr-dropdown-menu .fr-dropdown-wrapper {
              background: #2b2f31!important;
              border: 1px solid #444;
            }

            .fr-command.fr-btn+.fr-dropdown-menu .fr-dropdown-wrapper .fr-dropdown-content ul.fr-dropdown-list li {
              font-size: inherit;
            }

            .fr-separator {
              background: #1c1c1c;
            }

            .fr-box.fr-basic .fr-wrapper {
              background: #1f2224;
              border: 1px solid #1c1c1c;
              border-top: 0;
              top: 0;
              left: 0;
            }

            .fr-box.fr-basic .fr-element {
              color: #aaa;
            }

            .block--category .block-body {
              color: #aaa;
              background: #22282f;
              border-width:0;
              border-radius: 0;
              border-bottom-left-radius: 3px;
              border-bottom-right-radius: 3px;
              box-shadow: rgb(0 0 0 / 8%) 0px 1px 4px;
              border-color: #191b1c;
            }

            .block-container.block-container--none {
              background: none;
              color: #aaa;
            }

            .block-header {
              color: #fff;
              background: #16435e;
              border-bottom: 1px solid #1e1f1f;
              border-radius: 0;
              border-top-left-radius: 3px;
              border-top-right-radius: 3px;
              margin: 0!important
            }

            .block-header .block-desc {
              color: rgba(255,255,255,0.7)
            }

            .block-header .block-desc a {
              color: inherit;
              text-decoration: underline
            }

            .block-minorHeader {
              border-radius: 4px 4px 0 0!important;
              box-shadow: rgb(0 0 0 / 10%) 0px 1px 3px inset;
              color: #fff;
              background: #1b3544;
            }

            .block-tabHeader {
              color: #969696;
              background: #2b2f31;
            }

            .block-tabHeader .tabs-tab:hover {
              color: #969696;
              background: #34393c
            }

            .block-tabHeader .tabs-tab.is-active {
              color: #fff;
              background: #16435e;
            }

            .block-tabHeader .hScroller-action {
              color: #969696
            }

            .block-tabHeader .hScroller-action:hover {
              color: #fff
            }

            .block-tabHeader .hScroller-action.hScroller-action--start {
              background: #2b2f31;
              background: linear-gradient(to right, #2b2f31 66%, rgba(43,47,49,0) 100%)
            }

            .block-tabHeader .hScroller-action.hScroller-action--end {
              background: #2b2f31;
              background: linear-gradient(to right, rgba(43,47,49,0) 0%, #2b2f31 33%)
            }

            .block-minorTabHeader {
              color: #969696;
              background: #2f3336;
            }

            .block-minorTabHeader .tabs-tab {
              color: #969696;
            }

            .block-minorTabHeader .tabs-tab:hover {
              background: #34393c
            }

            .block-minorTabHeader .tabs-tab.is-active {
              color: #6bb2df;
              background: #34393c;
            }

            .block-minorTabHeader .hScroller-action {
              color: #969696
            }

            .block-minorTabHeader .hScroller-action:hover {
              color: #6bb2df
            }

            .block-minorTabHeader .hScroller-action.hScroller-action--start {
              background: #2f3336;
              background: linear-gradient(to right, #2f3336 66%, rgba(47,51,54,0) 100%)
            }

            .block-minorTabHeader .hScroller-action.hScroller-action--end {
              background: #2f3336;
              background: linear-gradient(to right, rgba(47,51,54,0) 0%, #2f3336 33%)
            }

            .block-filterBar {
              color: #fff;
              background: #16435e;
              border-bottom: 1px solid #1f2224;
            }

            .block-filterBar .filterBar-filterToggle {
              background: #357ca9
            }

            .block-filterBar .filterBar-listToggle,.block-filterBar .filterBar-filterToggle,.block-filterBar .filterBar-menuTrigger {
              color: #fff;
            }

            .block-filterBar .filterBar-listToggle:hover,.block-filterBar .filterBar-filterToggle:hover,.block-filterBar .filterBar-menuTrigger:hover {
              color: #fff;
              text-decoration: underline;
              background: transparent
            }

            .block-textHeader a {
              color: inherit;
              text-decoration: none
            }

            .block-textHeader a:hover {
              text-decoration: underline
            }

            .block-textHeader .block-textHeader-highlight {
              color: #aaa
            }

            .block-textHeader .block-desc a {
              color: inherit;
              text-decoration: underline
            }

            .block-formSectionHeader {
              text-decoration: none;
              color: #fff;
            }

            .block-formSectionHeader a {
              color: inherit;
              text-decoration: none
            }

            .block-formSectionHeader a:hover {
              text-decoration: underline
            }

            .block-formSectionHeader .block-desc a {
              color: inherit;
              text-decoration: underline
            }

            .block-row {
              background: inherit;
            }

            .p-body-sidebar .block-row:not(:last-child) {
              border-bottom: 1px solid #1e1f1f;
            }

            .block-row.block-row--highlighted {
              color: #aaa;
              background: #34393c
            }

            .block-row.block-row--clickable:hover {
              color: #aaa;
              background: #34393c
            }

            .block-row.block-row--alt {
              color: inherit;
              background: inherit;
            }

            .block-row.block-row--separated+.block-row {
              border-top: 1px solid #1f2224;
            }

            .block-row.is-mod-selected {
              background: #34393c
            }

            .block-footer {
              color: #969696;
              background: #2f3336;
            }

            .block-rowMessage.block-rowMessage--highlight {
              color: #aaa;
              background: #34393c
            }

            .block-rowMessage.block-rowMessage--important {
              color: #49a1d8;
              background: #2b2f31;
            }

            .block-rowMessage.block-rowMessage--important a {
              color: #49a1d8
            }

            .block-rowMessage--important.block-rowMessage--iconic:before {
              color: #49a1d8
            }

            .block-rowMessage.block-rowMessage--alt {
              color: #aaa;
              background: #2f3336
            }

            .block-rowMessage.block-rowMessage--success {
              background: #daf3d8;
              color: #3d793f
            }

            .block-rowMessage.block-rowMessage--success a {
              color: inherit;
              text-decoration: underline
            }

            .block-rowMessage--success.block-rowMessage--iconic:before {
              color: #63b265
            }

            .block-rowMessage.block-rowMessage--warning {
              background: #fbf7e2;
              color: #84653d
            }

            .block-rowMessage.block-rowMessage--warning a {
              color: inherit;
              text-decoration: underline
            }

            .block-rowMessage--warning.block-rowMessage--iconic:before {
              color: #dcda54
            }

            .block-rowMessage.block-rowMessage--error {
              background: #fde9e9;
              color: #c84448
            }

            .block-rowMessage.block-rowMessage--error a {
              color: inherit;
              text-decoration: underline
            }

            .block-rowMessage--error.block-rowMessage--iconic:before {
              color: #c84448
            }

            .blockMessage {
              color: #aaa;
              background: #2b2f31;
            }

            .blockMessage.blockMessage--none {
              background: none;
              color: #aaa;
            }

            .blockMessage.blockMessage--highlight {
              color: #aaa;
              background: #34393c
            }

            .blockMessage.blockMessage--important {
              color: #49a1d8;
              background: #2b2f31;
            }

            .blockMessage.blockMessage--important a {
              color: #49a1d8
            }

            .blockMessage--important.blockMessage--iconic:before {
              color: #49a1d8
            }

            .blockMessage.blockMessage--alt {
              color: #aaa;
              background: #2f3336
            }

            .blockMessage.blockMessage--success {
              background: #daf3d8;
              color: #3d793f
            }

            .blockMessage.blockMessage--success a {
              color: inherit;
              text-decoration: underline
            }

            .blockMessage--success.blockMessage--iconic:before {
              color: #63b265
            }

            .blockMessage.blockMessage--warning {
              background: #fbf7e2;
              color: #84653d
            }

            .blockMessage.blockMessage--warning a {
              color: inherit;
              text-decoration: underline
            }

            .blockMessage--warning.blockMessage--iconic:before {
              color: #dcda54
            }

            .blockMessage.blockMessage--error {
              background: #fde9e9;
              color: #c84448
            }

            .blockMessage.blockMessage--error a {
              color: inherit;
              text-decoration: underline
            }

            .blockMessage--error.blockMessage--iconic:before {
              color: #c84448
            }

            .blockStatus {
              color: #aaa;
              background: #2f3336;
            }

            .blockStatus-message:before {
              color: #49a1d8
            }

            .blockLink {
              color: #aaa;
              text-decoration: none;
            }

            .blockLink.is-selected {
              color: #6bb2df;
              background: #34393c;
            }

            .blockLink:hover {
              background: #34393c;
              text-decoration: inherit
            }

            .blockLink-desc {
              color: #818181;
            }

            .blockLinkSplitToggle {
              text-decoration: none;
            }

            .blockLinkSplitToggle.is-selected {
              color: #6bb2df;
              background: #34393c
            }

            .blockLinkSplitToggle:hover {
              background: #34393c;
              text-decoration: inherit
            }

            .fixedMessageBar {
              color: #969696;
              background: #2b2f31
            }

            .fixedMessageBar-close {
              color: inherit
            }

            .fixedMessageBar-close:hover {
              text-decoration: none;
              color: #afafaf
            }

            .button,a.button {
              text-decoration: none;
              color: #ffffff;
              background: #16435e;
              border-color: #131516
            }

            .button a,a.button a {
              color: inherit;
              border-color: #1f2224;
              text-decoration: none
            }

            .button.button--primary, a.button.button--primary {
              color: #f5f5f5;
              background: #009688;
              border-color: #2b2f31
            }

            .button.button--cta,a.button.button--cta {
              color: #ffffff;
              background: #16435e;
              border-color: #131516
            }

            .button.button--cta:hover,a.button.button--cta:hover,.button.button--cta:active,a.button.button--cta:active,.button.button--cta:focus,a.button.button--cta:focus {
              text-decoration: none;
              color: #ffffff;
              background: #3ba8da
            }

            .button.button--link,a.button.button--link {
              background: #2b2f31;
              color: #fff;
              border-color: #aaa
            }

            .button.button--link:hover,a.button.button--link:hover,.button.button--link:active,a.button.button--link:active,.button.button--link:focus,a.button.button--link:focus {
              text-decoration: none;
              background: #34393c
            }

            .button.button--plain,a.button.button--plain {
              background: none;
              color: #fff
            }

            .button.button--plain:hover,a.button.button--plain:hover,.button.button--plain:active,a.button.button--plain:active,.button.button--plain:focus,a.button.button--plain:focus {
              text-decoration: none;
              background: none
            }

            .button.button--alt,a.button.button--alt {
              background-color: #8cc3e6;
              color: #fff;
            }

            .button.button--alt:hover,a.button.button--alt:hover,.button.button--alt:active,a.button.button--alt:active,.button.button--alt:focus,a.button.button--alt:focus {
              background-color: #8cc3e6;
              color: #fff
            }

            .button.is-disabled,a.button.is-disabled {
              color: #4e4e4e;
              background: #34393c;
            }

            .button.is-disabled:hover,a.button.is-disabled:hover,.button.is-disabled:active,a.button.is-disabled:active,.button.is-disabled:focus,a.button.is-disabled:focus {
              background: #34393c !important
            }

            .button.button--scroll,a.button.button--scroll {
              background: rgba(35,113,162,0.75);
            }

            .button.button--icon--bookmark.is-bookmarked .button-text:before,a.button.button--icon--bookmark.is-bookmarked .button-text:before {
              color: #49a1d8
            }

            .button.button--provider--facebook,a.button.button--provider--facebook {
              color: #fff;
              background-color: #3b5998;
            }

            .button.button--provider--facebook:hover,a.button.button--provider--facebook:hover,.button.button--provider--facebook:active,a.button.button--provider--facebook:active,.button.button--provider--facebook:focus,a.button.button--provider--facebook:focus {
              background-color: #466ab5
            }

            .button.button--provider--twitter,a.button.button--provider--twitter {
              color: #fff;
              background-color: #1da1f3;
            }

            .button.button--provider--twitter:hover,a.button.button--provider--twitter:hover,.button.button--provider--twitter:active,a.button.button--provider--twitter:active,.button.button--provider--twitter:focus,a.button.button--provider--twitter:focus {
              background-color: #44b1f5
            }

            .button.button--provider--google,a.button.button--provider--google {
              color: #444;
              background-color: #fff;
            }

            .button.button--provider--google:hover,a.button.button--provider--google:hover,.button.button--provider--google:active,a.button.button--provider--google:active,.button.button--provider--google:focus,a.button.button--provider--google:focus {
              background-color: #fff
            }

            .button.button--provider--github,a.button.button--provider--github {
              color: #fff;
              background-color: #666;
            }

            .button.button--provider--github:hover,a.button.button--provider--github:hover,.button.button--provider--github:active,a.button.button--provider--github:active,.button.button--provider--github:focus,a.button.button--provider--github:focus {
              background-color: #7a7a7a
            }

            .button.button--provider--linkedin,a.button.button--provider--linkedin {
              color: #fff;
              background-color: #0077b5;
            }

            .button.button--provider--linkedin:hover,a.button.button--provider--linkedin:hover,.button.button--provider--linkedin:active,a.button.button--provider--linkedin:active,.button.button--provider--linkedin:focus,a.button.button--provider--linkedin:focus {
              background-color: #0092de
            }

            .button.button--provider--microsoft,a.button.button--provider--microsoft {
              color: #fff;
              background-color: #00bcf2;
            }

            .button.button--provider--microsoft:hover,a.button.button--provider--microsoft:hover,.button.button--provider--microsoft:active,a.button.button--provider--microsoft:active,.button.button--provider--microsoft:focus,a.button.button--provider--microsoft:focus {
              background-color: #1cccff
            }

            .button.button--provider--yahoo,a.button.button--provider--yahoo {
              color: #fff;
              background-color: #410093;
            }

            .button.button--provider--yahoo:hover,a.button.button--provider--yahoo:hover,.button.button--provider--yahoo:active,a.button.button--provider--yahoo:active,.button.button--provider--yahoo:focus,a.button.button--provider--yahoo:focus {
              background-color: #5300bc
            }

            .button.button--splitTrigger button.button-text,a.button.button--splitTrigger button.button-text {
              background: transparent;
              color: inherit
            }

            .button.button--splitTrigger>.button-menu:after,a.button.button--splitTrigger>.button-menu:after {
              unicode-bidi: isolate;
            }

            .toggleButton>span {
              color: #4e4e4e;
              background: #34393c;
            }

            .toggleButton>input:checked+span {
              color: #ffffff;
              background: #16435e;
            }

            .toggleButton>input:checked+span:not(.button--splitTrigger):hover,.toggleButton>input:checked+span.button--splitTrigger>.button-text:hover,.toggleButton>input:checked+span.button--splitTrigger>.button-menu:hover,.toggleButton>input:checked+span:not(.button--splitTrigger):focus,.toggleButton>input:checked+span.button--splitTrigger>.button-text:focus,.toggleButton>input:checked+span.button--splitTrigger>.button-menu:focus,.toggleButton>input:checked+span:not(.button--splitTrigger):active,.toggleButton>input:checked+span.button--splitTrigger>.button-text:active,.toggleButton>input:checked+span.button--splitTrigger>.button-menu:active {
              background-color: #2a88c4
            }

            .memberHeader-main {
              background: #2a313c;
              border-bottom: none;
            }

            .memberHeader-separator {
              border-top: 1px solid #131516;
            }

            .block-tabHeader .tabs-tab.is-active {
              color: #fff;
              background: #242729;
              border-color: #131516;
            }

            .message-avatar-wrapper .avatar.avatar--m{
              width: auto;
              height: auto;
            }

            .avatar.avatar--separated {
              border: 1px solid #131516;
            }

            .p-nav .focus-wrap-search {
              padding-bottom: 0;
            }

            .focus-search {
              background-color: #242729;
              background-image: none;
              color: #aaa;
            }

            .input {
              color: #aaa;
              background: #242729;
              border-width: 1px;
              border-color: #1e1f1f;
              padding: 10px 8px;
            }
            .input::-webkit-input-placeholder {
              color: rgba(170,170,170,0.7)
            }

            .input::-moz-placeholder {
              color: rgba(170,170,170,0.7)
            }

            .input:-moz-placeholder {
              color: rgba(170,170,170,0.7)
            }

            .input:-ms-input-placeholder {
              color: rgba(170,170,170,0.7)
            }

            .input:focus,.input.is-focused {
              outline: 0;
              background: #1d1f21;
            }

            .input:focus::-webkit-input-placeholder,.input.is-focused::-webkit-input-placeholder {
              color: rgba(170,170,170,0.5)
            }

            .input:focus::-moz-placeholder,.input.is-focused::-moz-placeholder {
              color: rgba(170,170,170,0.5)
            }

            .input:focus:-moz-placeholder,.input.is-focused:-moz-placeholder {
              color: rgba(170,170,170,0.5)
            }

            .input:focus:-ms-input-placeholder,.input.is-focused:-ms-input-placeholder {
              color: rgba(170,170,170,0.5)
            }

            .input[readonly],.input.is-readonly {
              color: #7c7c7c;
              background: #2c3033
            }

            .input[disabled] {
              color: #4e4e4e;
              background: #34393c;
            }

            select.input[size],.input.input--select[size],select.input[multiple],.input.input--select[multiple] {
              background-image: none !important;
            }

            .iconic>input:focus+i:before,.iconic>input:focus+i:after {
              outline: Highlight solid 2px;
              -moz-outline-radius: 5px
            }

            .formRow .iconic>i,.inputGroup .iconic>i,.inputChoices .iconic>i,.block-footer .iconic>i,.dataList-cell .iconic>i,.message-cell--extra .iconic>i,.formRow.dataList-cell--fa>a>i,.inputGroup.dataList-cell--fa>a>i,.inputChoices.dataList-cell--fa>a>i,.block-footer.dataList-cell--fa>a>i,.dataList-cell.dataList-cell--fa>a>i,.message-cell--extra.dataList-cell--fa>a>i,.formRow .iconic svg,.inputGroup .iconic svg,.inputChoices .iconic svg,.block-footer .iconic svg,.dataList-cell .iconic svg,.message-cell--extra .iconic svg,.formRow.dataList-cell--fa>a svg,.inputGroup.dataList-cell--fa>a svg,.inputChoices.dataList-cell--fa>a svg,.block-footer.dataList-cell--fa>a svg,.dataList-cell.dataList-cell--fa>a svg,.message-cell--extra.dataList-cell--fa>a svg {
              color: #969696;
              fill: currentColor
            }

            .formRow .iconic:hover>i,.inputGroup .iconic:hover>i,.inputChoices .iconic:hover>i,.block-footer .iconic:hover>i,.dataList-cell .iconic:hover>i,.message-cell--extra .iconic:hover>i,.formRow.dataList-cell--fa>a:hover>i,.inputGroup.dataList-cell--fa>a:hover>i,.inputChoices.dataList-cell--fa>a:hover>i,.block-footer.dataList-cell--fa>a:hover>i,.dataList-cell.dataList-cell--fa>a:hover>i,.message-cell--extra.dataList-cell--fa>a:hover>i,.formRow .iconic:hover svg,.inputGroup .iconic:hover svg,.inputChoices .iconic:hover svg,.block-footer .iconic:hover svg,.dataList-cell .iconic:hover svg,.message-cell--extra .iconic:hover svg,.formRow.dataList-cell--fa>a:hover svg,.inputGroup.dataList-cell--fa>a:hover svg,.inputChoices.dataList-cell--fa>a:hover svg,.block-footer.dataList-cell--fa>a:hover svg,.dataList-cell.dataList-cell--fa>a:hover svg,.message-cell--extra.dataList-cell--fa>a:hover svg {
              color: #6bb2df;
              fill: currentColor
            }

            .inputGroup.inputGroup--joined .inputGroup-text {
              background: #242729;
            }

            .inputGroup.inputGroup--joined .inputGroup-text.inputGroup-text--disabled,.inputGroup.inputGroup--joined .inputGroup-text.is-disabled,.inputGroup.inputGroup--joined .inputGroup-text[disabled] {
              color: #4e4e4e;
              background: #34393c;
            }

            .inputNumber-button {
              color: #969696;
            }

            .inputGroup.inputGroup--joined .inputNumber-button:hover,.inputGroup.inputGroup--joined .inputNumber-button:active,.inputGroup.inputGroup--joined .inputNumber-button:focus {
              background-color: #96cef1;
              color: #6bb2df
            }

            .input.input--number[readonly]~.inputNumber-button {
              color: #7c7c7c;
              background: #2c3033
            }

            .input.input--number[disabled]~.inputNumber-button {
              color: #4e4e4e;
              background: #34393c;
            }

            .inputDate .inputDate-icon {
              color: #fff;
            }

            .inputUploadButton {
              color: #969696;
            }

            .inputGroup.inputGroup--joined .inputUploadButton:hover,.inputGroup.inputGroup--joined .inputUploadButton:active,.inputGroup.inputGroup--joined .inputUploadButton:focus {
              background-color: #96cef1;
              color: #6bb2df
            }

            .inputChoices .inputChoices-label {
              color: #818181
            }

            .inputChoices-heading {
              color: #818181;
            }

            .inputChoices-explain {
              color: #818181
            }

            .inputChoices-explain a {
              color: inherit;
              text-decoration: underline
            }

            .inputValidationError {
              background: #fde9e9;
              color: #c84448;
            }

            .inputValidationError a {
              color: inherit;
              text-decoration: underline
            }

            .formRow>dt {
              background: #2f3336;
            }

            .formRow.formRow--fullWidth>dt,.menu .formRow>dt {
              background: none;
            }

            .formRow .formRow-error {
              color: #84653d;
            }

            .formRow .formRow-explain {
              color: #818181
            }

            .formRow .formRow-explain a {
              color: inherit;
              text-decoration: underline
            }
            .formRow .formRow-hint {
              color: #818181
            }

            .formRow .formRow-hint a {
              color: inherit;
              text-decoration: underline
            }

            .formRow .formRow-hint .formRow-hint-featured {
              color: #49a1d8
            }

            .formSubmitRow-bar {
              background: rgba(52,57,60,0.9);
            }

            .badge,.badgeContainer:after {
              color: #ffffff;
              background: #16435e;
            }

            .badge.badge--highlighted,.badgeContainer.badgeContainer--highlighted:after {
              color: #ffffff;
              background: #16435e;
            }

            .tooltip.tooltip--basic a {
              color: inherit;
              text-decoration: underline
            }

            .tooltip.tooltip--selectToQuote a {
              color: inherit;
              text-decoration: none
            }

            .tooltip.tooltip--selectToQuote a:hover {
              text-decoration: underline
            }

            .tooltip--basic .tooltip-content {
              color: #fff;
              background: #16435e;
            }

            .tooltip--member .tooltip-content{
              color: #aaa;
              background: #2b2f31;
              border: 1px solid #575a5c;
            }

            .tooltip--member.tooltip--top .tooltip-arrow {
              border-top-color: #575a5c;
            }

            .tooltip--member.tooltip--top .tooltip-arrow:after {
              border-top-color: #2b2f31;
            }

            .tooltip--member.tooltip--bottom .tooltip-arrow {
              border-bottom-color: #8c8c8c;
            }

            .tooltip--member.tooltip--bottom .tooltip-arrow:after {
              border-bottom-color: #1f2224;
            }

            .tooltip--preview .tooltip-content,
            .tooltip--bookmark .tooltip-content,
            .tooltip--share .tooltip-content,
            .tooltip--reaction .tooltip-content {
              color: #aaa;
              background: #2b2f31;
            }

            .tooltip--preview .tooltip-content-inner .tooltip-content-cover {
              background: transparent;
              background: linear-gradient(to bottom, rgba(43,47,49,0) 160px, #2b2f31 200px)
            }

            .memberTooltip-header {
              background: #1f2224!important;
              border-bottom: 1px solid #131516!important;
            }

            .memberTooltip-separator {
              border-top: none!important;
            }

            .memberTooltip-name {
              font-size: 20px!important;
              color: #cbcbcb!important;
            }
            .memberTooltip-name a:hover {
              text-decoration: none;
              color: #fff;
            }

            .userBanner.userBanner--blue {
              background: #204fb9;
              border-color: #3564cf;
            }

            .menu-arrow {
              border: none;
            }

            .menu-linkRow {
              background: inherit;
            }

            .menu-content {
              color: #aaa;
              background: #2b2f31;
              border-top: 0;
              /* border: 1px solid #818181; */
            }

            .menu-separator {
              border-top: 1px solid #131516;
              margin-top: 1px!important;
            }

            .menu-header {
              text-decoration: none;
              color: #fff;
              background: #16435e;
              border-bottom: none
            }

            .menu-header a {
              color: inherit;
              text-decoration: none
            }

            .menu-header a:hover {
              text-decoration: underline
            }

            .menu-header .menu-desc {
              color: rgba(255,255,255,0.7)
            }

            .menu-header .menu-desc a {
              color: inherit;
              text-decoration: underline
            }
            .menu-tabHeader {
              text-decoration: none;
              color: #fff;
              background: #16435e;
            }

            .menu-tabHeader .tabs-tab:hover {
              color: #6bb2df
            }

            .menu-tabHeader .tabs-tab.is-active {
              color: inherit;
            }

            .menu-tabHeader .hScroller-action {
              color: #fff
            }

            .menu-tabHeader .hScroller-action:hover {
              color: #6bb2df
            }

            .menu-tabHeader .hScroller-action.hScroller-action--start {
              background: #16435e;
              background: linear-gradient(to right, #16435e 66%, rgba(35,113,162,0) 100%)
            }

            .menu-tabHeader .hScroller-action.hScroller-action--end {
              background: #16435e;
              background: linear-gradient(to right, rgba(35,113,162,0) 0%, #16435e 33%)
            }

            .menu-row.menu-row--alt {
              color: #aaa;
              background: #23272a
            }

            .menu-row.menu-row--highlighted {
              color: #aaa;
              background: #34393c
            }

            .menu-row.menu-row--clickable:hover {
              background: #34393c
            }

            .menu-row.menu-row--separated+.menu-row {
              border-top: 1px solid #131516;
            }

            .menu-linkRow {
              color: #aaa;
              text-decoration: none
            }

            .menu-linkRow.menu-linkRow--alt {
              color: #aaa;
              background: #2f3336
            }

            .menu-linkRow.is-selected,.menu-linkRow:hover,.menu-linkRow:focus {
              color: #6bb2df;
              text-decoration: none;
              background: #34393c;
            }

            .menu-linkRow.is-selected:focus,.menu-linkRow:hover:focus,.menu-linkRow:focus:focus {
              outline: 0
            }

            .menu-linkRow:hover i[aria-hidden=true]:after {
              color: #6bb2df
            }

            .menu-linkRow-hint {
              color: #818181;
            }

            .menu-footer {
              color: #969696;
              background: #2f3336;
              border-top: 1px solid #131516;
            }

            .menu .block .block-container {
              color: inherit;
              background: none;
              border-color: #202020;
            }

            .menu {
              box-shadow: 0 5px 30px 0 rgb(0 0 0 / 25%), rgb(0 0 0 / 15%) 0px 3px 5px!important;
              border: 1px solid #131516;
            }

            .offCanvasMenu .offCanvasMenu-closer {
              text-decoration: none;
            }

            .offCanvasMenu .offCanvasMenu-closer:hover {
              text-decoration: none
            }

            .offCanvasMenu-backdrop {
              background: rgba(0,0,0,0.25);
            }

            .offCanvasMenu-header a {
              color: inherit;
              text-decoration: none
            }

            .offCanvasMenu-header a:hover {
              text-decoration: underline
            }

            .offCanvasMenu-link {
              text-decoration: inherit
            }

            .offCanvasMenu-link:hover {
              text-decoration: inherit
            }

            .offCanvasMenu-link.offCanvasMenu-link--splitToggle {
              text-decoration: inherit
            }

            .offCanvasMenu-linkHolder.is-selected a {
              color: inherit
            }

            .offCanvasMenu-linkHolder .offCanvasMenu-link:hover {
              background: none
            }

            .offCanvasMenu--blocks .offCanvasMenu-content {
              background: #131516;
              background-attachment: fixed;
              background-size: cover;
              color: #aaa
            }

            .offCanvasMenu--blocks .offCanvasMenu-header {
              color: #49a1d8;
              background: #34393c;
            }

            .offCanvasMenu--nav .offCanvasMenu-content {
              color: #aaa;
              background: #2b2f31;
            }

            .offCanvasMenu--nav .offCanvasMenu-content a {
              color: inherit
            }

            .offCanvasMenu--nav .offCanvasMenu-header {
              background: rgba(19,21,22,0.15);
            }

            .offCanvasMenu--nav .offCanvasMenu-linkHolder {
              text-decoration: none
            }

            .offCanvasMenu--nav .offCanvasMenu-linkHolder:hover {
              background: rgba(19,21,22,0.09)
            }

            .offCanvasMenu--nav .offCanvasMenu-linkHolder.is-selected {
              color: #fff;
              background: #34393c
            }

            .offCanvasMenu--nav .offCanvasMenu-subList {
              background: rgba(19,21,22,0.15)
            }

            .offCanvasMenu--nav .offCanvasMenu-subList .offCanvasMenu-link:hover {
              text-decoration: none;
              background: rgba(19,21,22,0.15)
            }

            .offCanvasMenu--nav .offCanvasMenu-installBanner {
              background: rgba(19,21,22,0.15);
            }

            .tabs-tab {
              color: inherit;
              text-decoration: none;
            }

            .tabs-tab:hover {
              text-decoration: none
            }

            .tabs-extra a {
              color: inherit;
              text-decoration: none;
            }

            .tabs--standalone {
              color: #aaa;
              background: #2b2f31;
              border: 1px solid #131516;
            }

            .tabs--standalone .tabs-tab:hover {
              color: #ffffff
            }

            .tabs--standalone .tabs-tab.is-active {
              color: #ffffff;
              background: #16435e;
              border-color: transparent;
            }

            .tabs--standalone .hScroller-action {
              color: #aaa
            }

            .tabs--standalone .hScroller-action:hover {
              color: #fff
            }

            .tabs--standalone .hScroller-action.hScroller-action--start {
              background: #2b2f31;
              background: linear-gradient(to right, #2b2f31 66%, rgba(43,47,49,0) 100%)
            }

            .tabs--standalone .hScroller-action.hScroller-action--end {
              background: #2b2f31;
              background: linear-gradient(to right, rgba(43,47,49,0) 0%, #2b2f31 33%)
            }

            .overlay-container {
              background: rgba(19,21,22,0.4);
            }

            .overlay {
              background: #131516;
              background-attachment: fixed;
              background-size: cover;
              color: #aaa;
              border: 1px solid #575a5c;
              outline: none
            }

            .overlay-title {
              color: #fff;
              background: #16435e;
              border-bottom: 1px solid #575a5c;
            }
            .overlay-content .block-row.block-row--separated+.block-row {
              border-top: 1px solid #575a5c;
            }

            .globalAction-bar {
              background: #49a1d8;
            }

            .globalAction-block i {
              background-color: #49a1d8;
            }

            .avatar img {
              background-color: #2b2f31
            }

            .avatar.avatar--default.avatar--default--dynamic,
            .avatar.avatar--default.avatar--default--text {
              text-decoration: none !important;
            }

            .avatar.avatar--default.avatar--default--text {
              width: 96px;
              max-width: 100%;
              height: auto;
              color: #818181 !important;
              background: #404345 !important
            }

            .avatar.avatar--default.avatar--default--text.avatar--s {
              width: 48px;
              height: 48px;
            }

            .avatar.avatar--default.avatar--default--text.avatar--xxs,
            .menu-row .avatar.avatar--default.avatar--default--text,
            .p-body-sidebar .avatar.avatar--default.avatar--default--text {
              width: 24px;
              height: 24px;
            }

            .avatar.avatar--default.avatar--default--image {
              background-color: #2b2f31;
              background-image: url();
              background-size: cover
            }

            .avatar:hover {
              text-decoration: none
            }

            .avatar-update {
              background: #000;
              background: linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0.3) 100%);
            }

            .avatar-update a {
              color: inherit;
              text-decoration: none
            }

            .avatar-update a:hover {
              text-decoration: underline
            }

            .avatar-update a {
              text-shadow: 0 0 2px rgba(0,0,0,0.6);
              color: #fff
            }

            .avatar-update a:hover {
              text-decoration: none
            }

            .avatarWrapper-update {
              color: #fff;
              text-decoration: none;
            }

            .avatarWrapper-update:before {
              background: #000;
              background: linear-gradient(to bottom, rgba(0,0,0,0) 60%, rgba(0,0,0,0.9) 100%);
            }

            .avatarWrapper-update:hover {
              color: #fff;
              text-decoration: none
            }

            .dataList-row:hover:not(.dataList-row--noHover):not(.dataList-row--header):not(.is-spHovered),.is-spActive .dataList-row.is-spChecked {
              background: rgba(52,57,60,0.5)
            }

            .is-spActive .dataList-row.is-spHovered {
              background: rgba(52,57,60,0.75)
            }

            .is-spActive .dataList-row:not(.dataList-row--noHover):not(.dataList-row--header):not(.is-spChecked) * {
              color: #818181
            }

            .dataList-row.dataList-row--header .dataList-cell a {
              color: inherit;
              text-decoration: underline
            }

            .dataList-row.dataList-row--subSection .dataList-cell {
              color: #fff;
              background: #16435e;
            }

            .dataList-row.dataList-row--subSection .dataList-cell a {
              color: inherit
            }

            .dataList-row.dataList-row--subSection:hover:not(.dataList-row--noHover) .dataList-cell {
              background: #16435e
            }

            .dataList-row.dataList-row--custom .dataList-cell--link a {
              color: red
            }

            .dataList-row.dataList-row--parentCustom .dataList-cell--link a {
              color: orange
            }

            .dataList-row.dataList-row--disabled .dataList-cell--link a {
              color: #818181;
            }

            .dataList-cell.dataList-cell--alt,.dataList-cell.dataList-cell--action {
              background: #2f3336
            }

            .dataList-cell.dataList-cell--highlighted {
              background: #34393c
            }

            .dataList-cell.dataList-cell--action,.dataList-cell.dataList-cell--link {
              text-decoration: none
            }

            .dataList-cell.dataList-cell--action.dataList-cell--alt:hover,.dataList-cell.dataList-cell--link.dataList-cell--alt:hover,.dataList-cell.dataList-cell--action.dataList-cell--action:hover,.dataList-cell.dataList-cell--link.dataList-cell--action:hover {
              background: #34393c
            }

            .dataList-cell.dataList-cell--action a,.dataList-cell.dataList-cell--link a,.dataList-cell.dataList-cell--action label,.dataList-cell.dataList-cell--link label,.dataList-cell.dataList-cell--action .dataList-blockLink,.dataList-cell.dataList-cell--link .dataList-blockLink {
              text-decoration: none;
            }

            .dataList-cell.dataList-cell--attachment {
              background: center / cover #2f3336 no-repeat;
            }

            .dataList-cell.dataList-cell--hint,.dataList-row--subSection .dataList-cell.dataList-cell--hint {
              color: #818181
            }
            .dataList-cell .is-match {
              text-decoration: underline;
              color: red
            }

            .dataList-hint,.dataList-subRow {
              color: #818181;
            }

            .dataList-row--footer .dataList-cell {
              color: #969696;
              background: #2f3336;
            }

            .dataList--responsive .dataList-cell[data-cell-label]:before {
              word-break: normal;
            }

            .filterBlock {
              color: #aaa;
              background: #2b2f31;
            }

            .quickFilter .js-filterClear {
              color: #969696
            }

            .filterBar-filterToggle {
              text-decoration: none;
              color: inherit;
            }

            .filterBar-filterToggle:hover {
              text-decoration: none
            }

            .filterBar-menuTrigger {
              text-decoration: none;
            }

            .contentRow.is-deleted .contentRow-header,.contentRow.is-deleted .contentRow-title {
              text-decoration: line-through
            }

            .contentRow-figureIcon {
              color: #49a1d8
            }

            .contentRow-muted {
              color: #818181
            }

            .contentRow-fader {
              background: transparent;
              background: linear-gradient(to bottom, rgba(43,47,49,0) 0%, #2b2f31 80%)
            }

            .contentRow-minor {
              color: #818181
            }

            .contentRow-minor.contentRow-minor--hideLinks a {
              color: inherit;
              text-decoration: none
            }

            .contentRow-minor.contentRow-minor--hideLinks a:hover {
              text-decoration: underline
            }

            .contentRow-extra.contentRow-extra--small {
              color: #818181
            }

            .contentRow-extra.contentRow-extra--normal {
              color: #818181
            }

            .contentRow-extra.contentRow-extra--large {
              color: #818181
            }

            .contentRow-extra.contentRow-extra--larger {
              color: #818181
            }

            .contentRow-extra.contentRow-extra--largest {
              color: #818181
            }

            .pageNav-jump {
              background: linear-gradient(0deg, #34393c, #2d3134);
              color: #aaa;
              background: #2f3336;
            }

            .pageNav-jump, .pageNav-page {
              border: 1px solid #131516;
              border-color: #131516;
            }

            .pageNav-jump:hover,.pageNav-jump:active {
              text-decoration: none;
              color: #ffffff;
              background: #16435e;
            }

            .pageNav-page {
              background: linear-gradient(0deg, #34393c, #2d3134);
              color: #aaa;
              background: #2f3336;
            }

            .pageNav-page:not(:first-child) {
              border-left-color: #131516;
            }

            .pageNav-page:hover,.pageNav-page:active {
              text-decoration: none;
              color: #ffffff;
              background: #16435e;
            }

            .pageNav-page>a {
              text-decoration: none;
              color: inherit
            }

            .pageNav-page.pageNav-page--current {
              color: #ffffff;
              background: #16435e;
              border-color: #131516;
            }

            .pageNavSimple-el.pageNavSimple-el--current {
              color: #49a1d8;
              background: #2b2f31;
            }

            .pageNavSimple-el.pageNavSimple-el--current:hover,.pageNavSimple-el.pageNavSimple-el--current:active {
              background: #323739;
              text-decoration: none
            }

            .pageNavSimple-el.pageNavSimple-el--prev,.pageNavSimple-el.pageNavSimple-el--next {
              background: linear-gradient(0deg, #34393c, #2d3134);
              color: #fff;
            }

            .pageNavSimple-el.pageNavSimple-el--prev:hover,.pageNavSimple-el.pageNavSimple-el--next:hover,.pageNavSimple-el.pageNavSimple-el--prev:active,.pageNavSimple-el.pageNavSimple-el--next:active {
              background: #3b4144;
              text-decoration: none
            }

            .pageNavSimple-el.pageNavSimple-el--first,.pageNavSimple-el.pageNavSimple-el--last {
              color: rgba(255,255,255,0.6)
            }

            .pageNavSimple-el.pageNavSimple-el--first:hover,.pageNavSimple-el.pageNavSimple-el--last:hover,.pageNavSimple-el.pageNavSimple-el--first:active,.pageNavSimple-el.pageNavSimple-el--last:active {
              background: #3b4144;
              color: #fff;
              text-decoration: none
            }

            .pageNavSimple-el.is-disabled {
              background: none;
              color: #818181;
              text-decoration: none;
            }

            .pageNavSimple-el.is-disabled:hover {
              background: none;
              color: #818181
            }

            .flashMessage {
              color: #202020;
              background: rgba(226,226,226,0.9);
            }

            .autoCompleteList {
              color: #aaa;
              background: #2b2f31;
            }

            .autoCompleteList li.is-selected {
              background: #34393c
            }

            .tagItem {
              color: #969696;
              background: #2f3336;
              border: 1px solid #131415;
            }

            a.tagItem:hover {
              text-decoration: none;
              color: #969696;
              background: #2b2f31
            }

            .likesBar {
              background: #2f3336;
              border: 1px solid #383b3d;
              border-left: 2px solid #49a1d8;
              padding: 10px;
            }

            .likeIcon:before {
              color: #49a1d8
            }

            .attachUploadList {
              color: #888;
              background: rgba(0,0,0,.14);
              border: 1px solid #383b3d;
            }

            .bbCodeBlock-expandLink {
              background: linear-gradient(to bottom, rgba(42,42,42,0) 0%, #1f2224 90%);
            }

            .bbCodeBlock-title {
              padding: 8px 10px;
              font-size: 12px;
              color: #6e7c91;
              background: #2a313c!important;
              border-bottom: 1px solid #383b3d;
            }

            .bbCodeBlock {
              background: #2f3336!important;
              border: 1px solid #383b3d!important;
              border-left: 2px solid #49a1d8!important;
            }
            .reactionsBar {
              background: #2f3336;
            }

            .reactionSummary>li {
              background: #2b2f31;
            }

            .reactionsBar .reactionSummary>li,.message-responseRow .reactionSummary>li {
              background: #2f3336
            }

            .colorChip-inner {
              background-color: transparent;
            }

            .bookmarkLink.bookmarkLink--highlightable.is-bookmarked {
              color: #49a1d8
            }

            .bookmarkLink.bookmarkLink--highlightable.is-bookmarked:hover {
              color: #49a1d8
            }

            .solutionIcon {
              color: #818181;
            }

            a.solutionIcon {
              color: #818181;
              text-decoration: none
            }

            .solutionIcon.is-solution {
              color: #63b265;
            }

            .actionBar-action.actionBar-action--inlineMod label {
              color: #fff;
            }

            .actionBar-action.actionBar-action--mq.is-selected {
              background-color: #34393c;
            }

            .actionBar-action.actionBar-action--postLink {
              text-decoration: inherit !important;
              color: inherit !important
            }

            .actionBar-action.actionBar-action--reaction:not(.has-reaction) .reaction-text {
              color: inherit
            }

            .actionBar-action.actionBar-action--view {
              background: #2b2f31;
              color: #fff;
            }

            .actionBar-action.actionBar-action--view:hover,.actionBar-action.actionBar-action--view:active,.actionBar-action.actionBar-action--view:focus {
              text-decoration: none;
              background: #34393c
            }

            .actionBar-set.actionBar-set--internal a.actionBar-action {
              color: #ddd;
            }

            .actionBar-set.actionBar-set--external .actionBar-action {
              border-color: #575a5c;
            }

            .label.label--subtle {
              color: #818181;
              background: #2f3336;
            }

            a.label.label--subtle:hover,a:hover .label.label--subtle {
              background: #383e41;
            }

            .label.label--primary {
              color: #fff;
              background: #34393c;
            }

            a.label.label--primary:hover,a:hover .label.label--primary {
              background: #3e4347;
            }

            .label.label--accent {
              color: #49a1d8;
              background: #2b2f31;
            }

            a.label.label--accent:hover,a:hover .label.label--accent {
              background: #34393c;
            }

            .label.label--red {
              color: #fff;
              background: #e20000;
            }

            a.label.label--red:hover,a:hover .label.label--red {
              background: #f60000;
            }

            .label.label--green {
              color: #fff;
              background: #008000;
            }

            a.label.label--green:hover,a:hover .label.label--green {
              background: #009400;
            }

            .label.label--olive {
              color: #fff;
              background: #808000;
            }

            a.label.label--olive:hover,a:hover .label.label--olive {
              background: #949400;
            }

            .label.label--lightGreen {
              color: #000;
              background: #ccf9c8;
            }

            a.label.label--lightGreen:hover,a:hover .label.label--lightGreen {
              background: #ddfbda;
            }

            .label.label--blue {
              color: #fff;
              background: #0008e3;
            }

            a.label.label--blue:hover,a:hover .label.label--blue {
              background: #0009f7;
            }

            .label.label--royalBlue {
              color: #fff;
              background: #4169e1;
            }

            a.label.label--royalBlue:hover,a:hover .label.label--royalBlue {
              background: #5377e4;
            }

            .label.label--skyBlue {
              color: #fff;
              background: #7cc3e0;
            }

            a.label.label--skyBlue:hover,a:hover .label.label--skyBlue {
              background: #8ccbe4;
            }

            .label.label--gray {
              color: #fff;
              background: #808080;
            }

            a.label.label--gray:hover,a:hover .label.label--gray {
              background: #8a8a8a;
            }

            .label.label--silver {
              color: #000;
              background: #c0c0c0;
            }

            a.label.label--silver:hover,a:hover .label.label--silver {
              background: #cacaca;
            }

            .label.label--yellow {
              color: #000;
              background: #ffff91;
            }

            a.label.label--yellow:hover,a:hover .label.label--yellow {
              background: #ffffa5;
            }

            .label.label--orange {
              color: #000;
              background: #ffcb00;
            }

            a.label.label--orange:hover,a:hover .label.label--orange {
              background: #ffcf14;
            }

            .label.label--error {
              color: #c84448;
              background: #fde9e9;
            }

            a.label.label--error:hover,a:hover .label.label--error {
              background: #fffcfc;
            }

            .reactionScore {
              color: #969696;
              background: #2f3336;
            }

            .reactionScore:hover {
              background: #2b2f31
            }

            .reaction-text::after {
              color: transparent;
            }

            .reaction--1 .reaction-text {
              color: #fff
            }

            .reaction--2 .reaction-text {
              color: #E81C27
            }

            .reaction--3 .reaction-text {
              color: #FDCA47
            }

            .reaction--4 .reaction-text {
              color: #FDCA47
            }

            .reaction--5 .reaction-text {
              color: #FDCA47
            }

            .reaction--6 .reaction-text {
              color: #FF4D4D
            }

            .bbMediaWrapper-fallback {
              background: #2f3336;
            }

            .bbOembed .embedly-card {
              background: white
            }

            .bbTable>table>thead>tr>th,.bbTable>table>tbody>tr>th {
              background: #8cc3e6;
            }

            .bbTable>table>thead>tr>td,.bbTable>table>tbody>tr>td {
              background: #2b2f31;
            }

            .bbWrapper .contentBox {
              color: #aaa;
              background: #2b2f31
            }

            .bbWrapper .accentBox {
              color: #49a1d8;
              background: #2b2f31;
            }

            .bbWrapper .accentBox a {
              color: #49a1d8
            }

            .bbWrapper .highlightBox {
              color: #aaa;
              background: #34393c
            }

            .bbWrapper .imgBar {
              color: #fff;
              background-repeat: no-repeat;
              background-size: cover
            }

            .blockLink.is-selected {
              color: #6bb2df;
              background: #34393c;
            }

            .blockLink:hover {
              background: #34393c
            }

            .dataList-row {
              background: #2b2f31
            }

            .dataListAltRows .dataList-row:nth-of-type(even) {
              background: #2f3336
            }

            .dataList-row:hover:not(.dataList-row--noHover):not(.dataList-row--header):not(.is-spHovered),.is-spActive .dataList-row.is-spChecked {
              background: #2f3336
            }

            .is-spActive .dataList-row.is-spHovered {
              background: #2f3336
            }

            .dataList-cell.dataList-cell--alt,.dataList-cell.dataList-cell--action {
              background: #2f3336
            }

            .dataList-cell.dataList-cell--action.dataList-cell--alt:hover,.dataList-cell.dataList-cell--link.dataList-cell--alt:hover,.dataList-cell.dataList-cell--action.dataList-cell--action:hover,.dataList-cell.dataList-cell--link.dataList-cell--action:hover {
              background: #34393c
            }

            .contentRow-lesser {
              color: #818181
            }

            .contentRow-header a,.contentRow-title a {
              color: inherit
            }

            .contentRow-header a:hover,.contentRow-title a:hover {
              color: #6bb2df
            }

            .inputGroup.inputGroup--joined .inputGroup-text {
              color: #aaa;
              background: #2f3336;
            }

            .inputGroup.inputGroup--joined .inputGroup-text:hover,.inputGroup.inputGroup--joined .inputGroup-text:active,.inputGroup.inputGroup--joined .inputGroup-text:focus {
              background: #34393c
            }

            .inputGroup.inputGroup--joined .inputNumber-button:hover,.inputGroup.inputGroup--joined .inputNumber-button:active,.inputGroup.inputGroup--joined .inputNumber-button:focus {
              background: #34393c
            }

            .focus-content {
              background: #1f2224;
            }

            .p-breadcrumbs {
              color: inherit;
              background-color: #2b2f31;
              background-image: none;
              box-shadow: none;
            }

            .focus-width .p-body-inner {
              padding-left: 0;
              padding-right: 0;
            }

            .p-body-header {
              color: #aaa;
              background: #1f2224;
              border: 1px solid #d8d8d8;
              border-radius: 4px;
              box-shadow: rgb(0 0 0 / 8%) 0px 1px 4px;
              border-color: transparent;
              margin-bottom: 0;
            }

            .p-body-main input[type="checkbox"],.p-body-main input[type="radio"] {
              color: #969696
            }

            .p-body-main input[type="checkbox"]~span.iconic-label,.p-body-main input[type="radio"]~span.iconic-label {
              color: #969696
            }

            .p-body-main input[type="checkbox"]:checked~span.iconic-label,.p-body-main input[type="radio"]:checked~span.iconic-label {
              color: #aaa
            }

            .p-body-main input[type="checkbox"]:checked+i,.p-body-main input[type="radio"]:checked+i {
              color: #6bb2df
            }

            .label.label--primary {
              color: #8cc3e6;
              background: #16435e;
            }

            a.label.label--primary:hover,a:hover .label.label--primary {
              background: #419cd6;
            }

            .menu-tabHeader .tabs-tab:hover:not(.is-active) {
              color: inherit;
              background: #1a5478
            }

            .tabs--standalone .tabs-tab:hover:not(.is-active) {
              background: #34393c
            }

            .button:hover,a.button:hover,.button:active,a.button:active,.button:focus,a.button:focus {
              text-decoration: none;
              color: #ffffff;
              background: #2c8ecc
            }

            .button.button--primary:hover,a.button.button--primary:hover,.button.button--primary:active,a.button.button--primary:active,.button.button--primary:focus,a.button.button--primary:focus {
              text-decoration: none;
              color: #ffffff;
              background: #2c8ecc
            }

            .button.button--link,a.button.button--link {
              color: #aaa;
              background: #2f3336;
              border-color: #575a5c;
            }

            .button.button--link:hover,a.button.button--link:hover,.button.button--link:active,a.button.button--link:active,.button.button--link:focus,a.button.button--link:focus {
              text-decoration: none;
              background: #34393c
            }

            .avatar.avatar--productIconDefault {
              color: #818181 !important;
              background: #404345 !important;
            }

            .xfmgThumbnail.xfmgThumbnail--noThumb {
              color: #aaa;
              background: #2f3336
            }

            .xfmgThumbnail-icon {
              color: #818181;
            }

            .avatar.avatar--resourceIconDefault {
              color: #818181 !important;
              background: #404345 !important;
            }

            .structItem {
              border-top: 1px solid #131516;
            }

            .structItem-title {
              font-size: 13px;
            }

            .structItem-minor {
              font-size: 12px;
              color: #9a9a9a;
            }

            .structItem-parts>li:nth-child(even) {
              color: inherit;
            }

            .structItem ul.structItem-parts::after {
              content: "⚡";
              font-size: 12px;
              color: #235f83;
              opacity: 0.1;
            }

            .structItem.is-unread ul.structItem-parts::after {
              opacity: 1;
            }

            .structItem.is-unread .structItem-title {
              color: #bbb;
            }

            .fervexTime .badge {
              color: #ffffff;
              background: #383b3d;
              padding: 6px 8px;
            }

          `);
        }
      }
    }


    ferveX("#fervexConfMenu").on("mousedown", dragMouseDown);

    function dragMouseDown(e) {
        e.preventDefault();
        var elmnt = ferveX("#fervexConf")[0];

        var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
        pos3 = e.clientX;
        pos4 = e.clientY;

        ferveX(document).on("mouseup", closeDragElement);
        ferveX(document).on("mousemove", elementDrag);

        function elementDrag(e) {
            e.preventDefault();
            pos1 = pos3 - e.clientX;
            pos2 = pos4 - e.clientY;
            pos3 = e.clientX;
            pos4 = e.clientY;

            var newRight = parseInt(ferveX(elmnt).css("right")) + pos1;

            ferveX(elmnt).css("top", (elmnt.offsetTop - pos2) + "px");
            ferveX(elmnt).css("right", newRight + "px");
        }

        function closeDragElement() {
            ferveX(document).off("mouseup", closeDragElement);
            ferveX(document).off("mousemove", elementDrag);
        }
    }

    ferveX('.panel-menu-list').first().append('<li><a href="#" id="open_menu_reyggtools" rel="fervextip" title="Raccourci : CTRL+E">Paramètres ReYGGTools</a></li>');

    var showMenu = 0;
    function showMenuReYGGTools() {
        if (showMenu){
            ferveX('#fervexConf').slideUp(500);
            showMenu = 0;
        } else {
            ferveX('#fervexConf').slideDown(500);
            showMenu = 1;
        }
    }

    /* config */
    Mousetrap.bind('ctrl+e', function(e) {
        e.preventDefault();
        showMenuReYGGTools();
    });

    ferveX('#open_menu_reyggtools').click(function(e){
        e.preventDefault();
        showMenuReYGGTools();
    });

    ferveX('#close_menu_reyggtools').click(function(e){
        e.preventDefault();
        showMenuReYGGTools();
    });

    ferveX('#close_menu_reyggtools').on('mouseenter', function(e){
        ferveX(this).addClass('bg-danger');
    }).on('mouseleave', function(e){
        ferveX(this).removeClass('bg-danger');
    });

    ferveX(document).on('click', '.config-recherche-bas', function(e) {
        setCookie('fervex_recherche','classique',365);
        ferveX('.config-recherche-bas').removeClass('btn-primary').addClass('btn-success');
        ferveX('.config-recherche-popup').removeClass('btn-success').addClass('btn-primary');
    });
    ferveX(document).on('click', '.config-recherche-popup', function(e) {
        setCookie('fervex_recherche','bulle',365);
        ferveX('.config-recherche-popup').removeClass('btn-primary').addClass('btn-success');
        ferveX('.config-recherche-bas').removeClass('btn-success').addClass('btn-primary');
    });

    ferveX(document).on('click', '.config-recherche-date-desc', function(e) {
        setCookie('fervex_recherche_date','desc',365);
        ferveX('.config-recherche-date-desc').removeClass('btn-primary').addClass('btn-success');
        ferveX('.config-recherche-date-asc').removeClass('btn-success').addClass('btn-primary');
    });
    ferveX(document).on('click', '.config-recherche-date-asc', function(e) {
        setCookie('fervex_recherche_date','asc',365);
        ferveX('.config-recherche-date-asc').removeClass('btn-primary').addClass('btn-success');
        ferveX('.config-recherche-date-desc').removeClass('btn-success').addClass('btn-primary');
    });

    ferveX(document).on('click', '.config-darkmode-on', function(e) {
        setCookie('re_darkmode','on',365);
        ferveX('.config-darkmode-on').removeClass('btn-primary').addClass('btn-success');
        ferveX('.config-darkmode-off').removeClass('btn-success').addClass('btn-primary');
        ferveX('#config_darkmode').prop('checked', true);
    });
    ferveX(document).on('click', '.config-darkmode-off', function(e) {
        setCookie('re_darkmode','off',365);
        ferveX('.config-darkmode-off').removeClass('btn-primary').addClass('btn-success');
        ferveX('.config-darkmode-on').removeClass('btn-success').addClass('btn-primary');
        ferveX('#config_darkmode').prop('checked', false);
    });

    ferveX(document).on('click', '.config-sidebar-on', function(e) {
        setCookie('fervex_sidebar','on',365);
        ferveX('#cat').addClass('active');
        ferveX('.config-sidebar-on').removeClass('btn-primary').addClass('btn-success');
        ferveX('.config-sidebar-off').removeClass('btn-success').addClass('btn-primary');
        ferveX('#config_sidebar').prop('checked', true);
    });
    ferveX(document).on('click', '.config-sidebar-off', function(e) {
        setCookie('fervex_sidebar','off',365);
        ferveX('#cat').removeClass('active');
        ferveX('.config-sidebar-off').removeClass('btn-primary').addClass('btn-success');
        ferveX('.config-sidebar-on').removeClass('btn-success').addClass('btn-primary');
        ferveX('#config_sidebar').prop('checked', false);
    });
    ferveX(document).on('change', '#config_sidebar', function() {
        if (ferveX(this).is(':checked')) {
            setCookie('fervex_sidebar','on',365);
            ferveX('#cat').addClass('active');
            ferveX('.config-sidebar-on').removeClass('btn-primary').addClass('btn-success');
            ferveX('.config-sidebar-off').removeClass('btn-success').addClass('btn-primary');
        } else {
            setCookie('fervex_sidebar','off',365);
            ferveX('#cat').removeClass('active');
            ferveX('.config-sidebar-off').removeClass('btn-primary').addClass('btn-success');
            ferveX('.config-sidebar-on').removeClass('btn-success').addClass('btn-primary');
        }
    });
    ferveX(document).on('change', '#config_darkmode', function() {
        if (ferveX(this).is(':checked')) {
            setCookie('re_darkmode','on',365);
            ferveX('#cat').addClass('active');
            ferveX('.config-darkmode-on').removeClass('btn-primary').addClass('btn-success');
            ferveX('.config-darmode-off').removeClass('btn-success').addClass('btn-primary');
        } else {
            setCookie('re_darkmode','off',365);
            ferveX('#cat').removeClass('active');
            ferveX('.config-darkmode-off').removeClass('btn-primary').addClass('btn-success');
            ferveX('.config-darkmode-on').removeClass('btn-success').addClass('btn-primary');
        }
    });

    ferveX(document).on('click', '.config-notifs-on', function(e) {
        setCookie('fervex_notifs','on',365);
		ferveX('#top_panel a[href="https://www.ygg.re/user/notifications"]').parent().show();
        ferveX('.config-notifs-on').removeClass('btn-primary').addClass('btn-success');
        ferveX('.config-notifs-off').removeClass('btn-success').addClass('btn-primary');
        ferveX('#config_notifs').prop('checked', true);
    });
    ferveX(document).on('click', '.config-notifs-off', function(e) {
        setCookie('fervex_notifs','off',365);
		ferveX('#top_panel a[href="https://www.ygg.re/user/notifications"]').parent().hide();
        ferveX('.config-notifs-off').removeClass('btn-primary').addClass('btn-success');
        ferveX('.config-notifs-on').removeClass('btn-success').addClass('btn-primary');
        ferveX('#config_notifs').prop('checked', false);
    });
    ferveX(document).on('change', '#config_notifs', function() {
        if (ferveX(this).is(':checked')) {
            setCookie('fervex_notifs','on',365);
            ferveX('#top_panel a[href="https://www.ygg.re/user/notifications"]').parent().show();
            ferveX('.config-notifs-on').removeClass('btn-primary').addClass('btn-success');
            ferveX('.config-notifs-off').removeClass('btn-success').addClass('btn-primary');
        } else {
            setCookie('fervex_notifs','off',365);
            ferveX('#top_panel a[href="https://www.ygg.re/user/notifications"]').parent().hide();
            ferveX('.config-notifs-off').removeClass('btn-primary').addClass('btn-success');
            ferveX('.config-notifs-on').removeClass('btn-success').addClass('btn-primary');
        }
    });

    ferveX(document).on('click', '.config-notifs-total-on', function(e) {
        setCookie('fervex_notifs_total','on',365);
        ferveX('.bulle+.bulle').show();
        ferveX('.config-notifs-total-on').removeClass('btn-primary').addClass('btn-success');
        ferveX('.config-notifs-total-off').removeClass('btn-success').addClass('btn-primary');
        ferveX('#config_notifs_total').prop('checked', true);
    });
    ferveX(document).on('click', '.config-notifs-total-off', function(e) {
        setCookie('fervex_notifs_total','off',365);
        ferveX('.bulle+.bulle').hide();
        ferveX('.config-notifs-total-off').removeClass('btn-primary').addClass('btn-success');
        ferveX('.config-notifs-total-on').removeClass('btn-success').addClass('btn-primary');
        ferveX('#config_notifs_total').prop('checked', false);
    });
    ferveX(document).on('change', '#config_notifs_total', function() {
        if (ferveX(this).is(':checked')) {
            setCookie('fervex_notifs_total','on',365);
            ferveX('.bulle+.bulle').show();
            ferveX('.config-notifs-total-on').removeClass('btn-primary').addClass('btn-success');
            ferveX('.config-notifs-total-off').removeClass('btn-success').addClass('btn-primary');
        } else {
            setCookie('fervex_notifs_total','off',365);
            ferveX('.bulle+.bulle').hide();
            ferveX('.config-notifs-total-off').removeClass('btn-primary').addClass('btn-success');
            ferveX('.config-notifs-total-on').removeClass('btn-success').addClass('btn-primary');
        }
    });

    ferveX(document).on('click', '.config-preview-on', function(e) {
        setCookie('fervex_preview','on',365);
        addPreview();
        ferveX('.config-preview-on').removeClass('btn-primary').addClass('btn-success');
        ferveX('.config-preview-off').removeClass('btn-success').addClass('btn-primary');
        ferveX('#config_preview').prop('checked', true);
    });
    ferveX(document).on('click', '.config-preview-off', function(e) {
        setCookie('fervex_preview','off',365);
        removePreview();
        ferveX("a[id^='torrent_name'], a[href^='https://www.ygg.re/torrent/']").unbind('mouseenter mouseleave');
        ferveX('.config-preview-off').removeClass('btn-primary').addClass('btn-success');
        ferveX('.config-preview-on').removeClass('btn-success').addClass('btn-primary');
        ferveX('#config_preview').prop('checked', false);
    });
    ferveX(document).on('change', '#config_preview', function() {
        if (ferveX(this).is(':checked')) {
            setCookie('fervex_preview','on',365);
            setTimeout(function () {
                addPreview();
            }, 600);
            ferveX('.config-preview-on').removeClass('btn-primary').addClass('btn-success');
            ferveX('.config-preview-off').removeClass('btn-success').addClass('btn-primary');
        } else {
            setCookie('fervex_preview','off',365);
            removePreview();
            ferveX('.config-preview-off').removeClass('btn-primary').addClass('btn-success');
            ferveX('.config-preview-on').removeClass('btn-success').addClass('btn-primary');
        }
    });

    ferveX(document).on('click', '.config-preview2-on', function(e) {
        setCookie('fervex_preview2','on',365);
        getPreview();
        ferveX('.config-preview2-on').removeClass('btn-primary').addClass('btn-success');
        ferveX('.config-preview2-off').removeClass('btn-success').addClass('btn-primary');
        ferveX('#config_preview2').prop('checked', true);
    });
    ferveX(document).on('click', '.config-preview2-off', function(e) {
        setCookie('fervex_preview2','off',365);
        ferveX('.config-preview2-off').removeClass('btn-primary').addClass('btn-success');
        ferveX('.config-preview2-on').removeClass('btn-success').addClass('btn-primary');
        ferveX('#config_preview2').prop('checked', false);
    });
    ferveX(document).on('change', '#config_preview2', function() {
        if (ferveX(this).is(':checked')) {
            setCookie('fervex_preview2','on',365);
            getPreview();
            ferveX('.config-preview2-on').removeClass('btn-primary').addClass('btn-success');
            ferveX('.config-preview2-off').removeClass('btn-success').addClass('btn-primary');
        } else {
            setCookie('fervex_preview2','off',365);
            ferveX('.config-preview2-off').removeClass('btn-primary').addClass('btn-success');
            ferveX('.config-preview2-on').removeClass('btn-success').addClass('btn-primary');
        }
    });

    ferveX(document).on('input', '.tempo_preview', function() {
        removePreview();
        var newDelai = ferveX('.tempo_preview').val();
        ferveX('.tempo_preview').val( ferveX('.tempo_preview').val() );
        ferveX('.tempo_preview_value').html(newDelai);
        setCookie('fervex_preview_delai', newDelai, 365);
        addPreview();
    });
    ferveX(document).on('input', '.height_preview', function() {
        removePreview();
        var newHeight = ferveX('.height_preview').val();
        ferveX('.height_preview').val( ferveX('.height_preview').val() );
        ferveX('.height_preview_value').html(newHeight);
        setCookie('fervex_preview_height', newHeight, 365);
        addPreview();
    });

    var reDarkmode = getCookie('re_darkmode');
    if (reDarkmode == "on"){
        TheDarkSide();
        ferveX('.config-darkmode-on').toggleClass('btn-primary btn-success');
        ferveX('#config_darkmode').prop('checked', true);
    } else {
        ferveX('.config-darkmode-off').toggleClass('btn-primary btn-success');
        ferveX('#config_darkmode').prop('checked', false);
    }

    var fervexSearch = getCookie('fervex_recherche');
    if (fervexSearch == "bulle"){
        ferveX('.fervexTools').toggleClass('fervexTools1 fervexTools2');
        ferveX('.config-recherche-popup').toggleClass('btn-primary btn-success');
    } else {
        ferveX('.config-recherche-bas').toggleClass('btn-primary btn-success');
    }
    var fervexSearchDate = getCookie('fervex_recherche_date');
    if (fervexSearchDate == null || fervexSearchDate == "desc"){
        ferveX('<input>').attr({
            name: 'order',
            type: 'hidden',
            value: 'desc'
        }).appendTo("form[action='https://www.ygg.re/engine/search']");
        ferveX('<input>').attr({
            name: 'sort',
            type: 'hidden',
            value: 'publish_date'
        }).appendTo("form[action='https://www.ygg.re/engine/search']");
        ferveX('.config-recherche-date-desc').toggleClass('btn-primary btn-success');
    } else if (fervexSearchDate == "asc"){
        ferveX('<input>').attr({
            name: 'order',
            type: 'hidden',
            value: 'asc'
        }).appendTo("form[action='https://www.ygg.re/engine/search']");
        ferveX('<input>').attr({
            name: 'sort',
            type: 'hidden',
            value: 'publish_date'
        }).appendTo("form[action='https://www.ygg.re/engine/search']");
        ferveX('.config-recherche-date-asc').toggleClass('btn-primary btn-success');
    }

    /* sidebar */
    var fervexSidebar = getCookie('fervex_sidebar');
    if (fervexSidebar == "on"){
        ferveX('.config-sidebar-on').toggleClass('btn-primary btn-success');
        ferveX('#config_sidebar').prop('checked', true);
    } else {
        ferveX('.config-sidebar-off').toggleClass('btn-primary btn-success');
        ferveX('#config_sidebar').prop('checked', false);
    }

    /* notifs reçues */
    var fervexNotifsNb = ferveX('.bulle:first-child').text();
    if (fervexNotifsNb == 0){
        ferveX('.bulle:first-child').hide();
        var fervexNotifs = getCookie('fervex_notifs');
        if (fervexNotifs == "off"){
            ferveX('#top_panel a[href="https://www.ygg.re/user/notifications"]').parent().hide();
            ferveX('.config-notifs-off').toggleClass('btn-primary btn-success');
            ferveX('#config_notifs').prop('checked', false);
        } else {
            ferveX('.config-notifs-on').toggleClass('btn-primary btn-success');
            ferveX('#config_notifs').prop('checked', true);
        }
    }

    /* notifs total */
    var fervexNotifsTotal = getCookie('fervex_notifs_total');
    if (fervexNotifsTotal == "off"){
		ferveX('.bulle+.bulle').hide();
        ferveX('.config-notifs-total-off').toggleClass('btn-primary btn-success');
        ferveX('#config_notifs_total').prop('checked', false);
    } else {
        ferveX('.config-notifs-total-on').toggleClass('btn-primary btn-success');
        ferveX('#config_notifs_total').prop('checked', true);
    }


    /* preview des images torrents au survol */
    var fervexPreview = getCookie('fervex_preview');
    if (fervexPreview == null || fervexPreview == "on"){
        setTimeout(function () {
            addPreview();
        }, 600);
        ferveX('.config-preview-on').toggleClass('btn-primary btn-success');
        ferveX('#config_preview').prop('checked', true);
    } else {
        ferveX('.config-preview-off').toggleClass('btn-primary btn-success');
        ferveX('#config_preview').prop('checked', false);
    }

    /* preview des images torrents dans la table (experimental) */
    var fervexPreview2 = getCookie('fervex_preview2');
    if (fervexPreview2 == "on"){
        setTimeout(function () {
            getPreview();
        }, 600);
        ferveX('.config-preview2-on').toggleClass('btn-primary btn-success');
        ferveX('#config_preview2').prop('checked', true);
    } else {
        ferveX('.config-preview2-off').toggleClass('btn-primary btn-success');
        ferveX('#config_preview2').prop('checked', false);
    }
    ferveX('#config_preview2').on('change', function() {
        if (ferveX(this).is(':checked')) {
            getPreview();
            ferveX('.config-preview-on').toggleClass('btn-primary btn-success');
            setCookie('fervex_preview2','on',365);
        } else {
            removePreview();
            ferveX('.config-preview-off').toggleClass('btn-primary btn-success');
            setCookie('fervex_preview2','off',365);
        }
    });

    /* fallback des previews pour les torrents ajoutés dynamiquement */
    ferveX('td[id^=display-more]').click(function(e){
        var fervexPreview = getCookie('fervex_preview');
        if (fervexPreview == null || fervexPreview == "on"){
            setTimeout(function () {
                removePreview();
                addPreview();
            }, 800);
        }
        var fervexPreview2 = getCookie('fervex_preview2');
        if (fervexPreview2 == "on"){
            setTimeout(function () {
                getPreview();
            }, 800);
        }
    });

    function addPreview() {
        // Décalage horizontal et vertical
        var xOffset = 20;
        var yOffset = 15;
        // Hauteur fixe de l'image
        var imageHeight;
        var fervexImageHeight = getCookie('fervex_preview_height');
        if (fervexImageHeight == null){
            imageHeight = 300;
        } else {
            imageHeight = fervexImageHeight;
        }
        // compteur
        var compteur;
        var delai;

        ferveX("a[id^='torrent_name'], a[href^='https://www.ygg.re/torrent/']").on("mouseenter", function(e) {
            ferveX("#preview").remove();
            var href = ferveX(this).attr('href');
            delai = (getCookie('fervex_preview_delai')!== null) ? getCookie('fervex_preview_delai') : 400;
            compteur = setTimeout(function () {
                ferveX.get(href, function(data, status) {
                    var targetSection = ferveX(data).find('#send-comment').prev('.content');
                    if (targetSection.length === 0) {
                        targetSection = ferveX(data).find('.content').eq(1);
                    }
                    var imgSrc = targetSection.find('img:first').attr('src');

                    // Créer une nouvelle instance d'image
                    var image = new Image();

                    // Attacher un gestionnaire d'événement pour détecter quand l'image est chargée
                    image.onload = function() {
                        var imageRatio = image.height / image.width;

                        if (imageRatio < 0.38) {
                            image = targetSection.find('img:eq(1)')[0];
                            imgSrc = image.src;
                        }

                        if (typeof imgSrc !== 'undefined' && imgSrc.match("^http")) {
                            var previewHtml = "<div id='preview' style='position:absolute;z-index:9999;border:1px solid #000;box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.7);display:none'><img src='" + imgSrc + "' alt='Image preview' style='max-height:" + imageHeight + "px'></div>";
                            ferveX("body").append(previewHtml);

                            var mouseY = e.pageY - ferveX(window).scrollTop(); // Coordonnée Y du curseur par rapport à la fenêtre visible

                            var totalHeight = mouseY + yOffset + imageHeight;
                            var windowHeight = ferveX(window).height();
                            var availableSpace = windowHeight - mouseY - yOffset;

                            if (totalHeight > windowHeight && availableSpace < imageHeight) {
                                // Le curseur est en bas de l'écran et l'espace disponible en haut est insuffisant pour l'image
                                ferveX("#preview")
                                    .css("top", (e.pageY - yOffset - imageHeight) + "px")
                                    .css("bottom", "auto")
                                    .css("left", (e.pageX + xOffset) + "px");
                            } else {
                                // Le curseur est en haut de l'écran ou l'espace disponible en haut est suffisant pour l'image
                                ferveX("#preview")
                                    .css("top", (e.pageY + yOffset + 8) + "px")
                                    .css("bottom", "auto")
                                    .css("left", (e.pageX + xOffset + 6) + "px");
                            }

                            ferveX("#preview").fadeIn("fast");
                        }
                    };

                    // Charger l'image
                    image.src = imgSrc;

                }, 'html');
            }, delai);
        }).on("mouseleave", function(e) {
            clearTimeout(compteur);
            ferveX("#preview").remove();
        });

        ferveX("a[id^='torrent_name'], a[href^='https://www.ygg.re/torrent/']").on("mousemove", function(e) {
            var mouseY = e.pageY - ferveX(window).scrollTop(); // Coordonnée Y du curseur par rapport à la fenêtre visible

            var totalHeight = mouseY + yOffset + imageHeight;
            var windowHeight = ferveX(window).height();
            var availableSpace = windowHeight - mouseY - yOffset;

            if (totalHeight > windowHeight && availableSpace < imageHeight) {
                // Le curseur est en bas de l'écran et l'espace disponible en haut est insuffisant pour l'image
                ferveX("#preview")
                    .css("top", (e.pageY - yOffset - imageHeight) + "px")
                    .css("bottom", "auto")
                    .css("left", (e.pageX + xOffset) + "px");
            } else {
                // Le curseur est en haut de l'écran ou l'espace disponible en haut est suffisant pour l'image
                ferveX("#preview")
                    .css("top", (e.pageY + yOffset + 8) + "px")
                    .css("bottom", "auto")
                    .css("left", (e.pageX + xOffset + 6) + "px");
            }
        });

        ferveX("a[id^='torrent_name'], a[href^='https://www.ygg.re/torrent/']").on("mouseout", function(e) {
            ferveX("#preview").remove();
        });

    }

    /* retrait de l'image de preview en cliquant dessus */
    ferveX(document).on("click", "#preview", function(e) {
        ferveX("#preview").remove();
    });

    /* retrait de l'image de preview en appuyant sur échap */
    ferveX(document).keyup(function(e) {
        if (e.key === "Escape") {
            ferveX("#preview").remove();
        }
    });
    function removePreview() {
        ferveX("a[id^='torrent_name'], a[href^='https://www.ygg.re/torrent/']").off("mouseenter").off("mouseleave");
    }

    function getPreview() {
        if (url.indexOf("/forum/") == -1) {
            ferveX("a[id^='torrent_name'], a[href^='https://www.ygg.re/torrent/']").not('.image-preview').each(function(){
                var that = ferveX(this);
                var href = that.attr('href');
                ferveX.get(href, function(data, status) {
                    var targetSection = ferveX(data).find('#send-comment').prev('.content');
                    if (targetSection.length === 0) {
                        targetSection = ferveX(data).find('.content').eq(1);
                    }
                    var imgSrc = targetSection.find('img:first').attr('src');

                    // Créer une nouvelle instance d'image
                    var image = new Image();

                    // Attacher un gestionnaire d'événement pour détecter quand l'image est chargée
                    image.onload = function() {
                        var imageRatio = image.height / image.width;

                        if (imageRatio < 0.38) {
                            image = targetSection.find('img:eq(1)')[0];
                            imgSrc = image.src;
                        }

                        if (typeof imgSrc !== 'undefined' && imgSrc.match("^http")) {
                            that.parent('td').prev().append('<img src="' + imgSrc + '" style="max-width:80px;height:auto;" class="image-preview">');
                        }
                    };

                    // Charger l'image
                    image.src = imgSrc;
                });

            });
        }
    }

    /* Recherche dynamique site+fofo */
    ferveX(document).bind("mouseup", function() {
        var texteSelection = x.Selector.getSelected();
        if((texteSelection != '')&&(fervexTemp != '1')){
            if(fervexSearch == 'bulle'){
                ferveX('.fervexTools').css({
                    'left': pageX + 5,
                    'top' : pageY - 50
                }).fadeIn(200);
                ferveX(".fervexTools a").html("<i class=\'"+iconeRecherche+"\'></i>");
            } else {
                ferveX('.fervexTools').css({
                    'right': 10,
                    'bottom' : 6
                }).fadeIn(200);
                ferveX(".fervexTools a").html("<i class=\'"+iconeRecherche+"\'></i> Rechercher sur YGG");
            }
            ferveX(".fervexTools a").attr("href", "https://www.ygg.re/engine/search?name="+texteSelection+"&do=search");
            ferveX(".fervexTools a").attr("title", "Rechercher : "+texteSelection);
            fervexTemp = '1';
        } else {
            ferveX('.fervexTools').fadeOut(200);
            fervexTemp = '0';
        }

        /* actualisation position du curseur */
        ferveX(document).on("mousedown", function(e){
            pageX = e.pageX;
            pageY = e.pageY;
        });

    });

    /* fervextip */
    ferveX(document).on('mouseenter', '[rel=fervextip]', function(e) {
        if (ferveX(this).attr('title') == ""){
            ferveX(this).attr('title',ferveX('.tipBody').html());
            ferveX(this).children('#fervextip').remove();
        }
        var tip = ferveX(this).attr('title');
        ferveX(this).attr('title','');
        ferveX(this).append('<div id="fervextip"><div class="tipBody">' + tip + '</div></div>');
        ferveX('#fervextip').css('top', e.clientY + 10 );
        ferveX('#fervextip').css('left', e.clientX + 20 );
        ferveX('#fervextip').fadeIn('500');
    }).on("mousemove", '[rel=fervextip]', function(e) {
        ferveX('#fervextip').css('top', e.clientY + 10 );
        ferveX('#fervextip').css('left', e.clientX + 20 );
    }).on("mouseleave", '[rel=fervextip]', function(e) {
        ferveX(this).attr('title',ferveX('.tipBody').html());
        ferveX(this).children('#fervextip').remove();
    });

    var rechercheF = '';
    var rechercheU = '';
    var baseUrl = '';

    if (url.indexOf("/forum/") > -1) {

        ferveX(document).ready(function() {

            ferveX('.p-nav .focus-wrap-nav ul.p-nav-list li').last().after('<li><div class="p-navEl"><a href="/user/account" class="p-navEl-link" data-nav-id="moncompte">Mon compte</a></div></li>');
            ferveX('.p-nav .focus-wrap-nav ul.p-nav-list li').last().after('<li><div class="p-navEl"><a href="/user/messages" class="p-navEl-link" data-nav-id="messagerie">Messagerie</a></div></li>');
            ferveX('.p-nav .focus-wrap-nav ul.p-nav-list li').last().after('<li><div class="p-navEl"><a href="/user/upload_torrent" class="p-navEl-link" data-nav-id="uploadtorrent">Upload torrent</a></div></li>');
            ferveX('.p-nav .focus-wrap-nav ul.p-nav-list li').last().after('<li><div class="p-navEl"><a href="/engine/search_users?nickname=" class="p-navEl-link" data-nav-id="chercheCopain" id="chercheCopain" title="Recherche un utilisateur sur YGG"></a></div></li>');
            ferveX('.p-nav .focus-wrap-nav ul.p-nav-list li').last().after('<li><div class="p-navEl"><a href="" class="p-navEl-link" data-nav-id="voirfavoris" id="voirfavoris" title="Afficher ses favoris enregistrés"></a></div></li>');
            ferveX("body").prepend('<div class="fervexTime d-flex align-items-center justify-content-center"><span class="badge">FR : <span id="hfr"></span> ↔ QC : <span id="hqc"></span></span></div>');

			ferveX('.block-outer-opposite').first().before('<div class="block-outer-main"><a href="" class="button--link button ajout-favoris" title="Ajouter aux Favoris"><i class="fa fa-bookmark"></i> En Favoris</a></div>')

            /* Favoris */
			ferveX(".ajout-favoris").click(function(e){
				e.preventDefault();
				const that = ferveX(this);
				const currentDate = new Date();
				const temps = currentDate.getTime()
				const favTitre = ferveX("h1.p-title-value").text();
				const favUrl = ferveX(location).attr('href');
				localStorage.setItem('FAV_'+temps+'_titre', favTitre);
				localStorage.setItem('FAV_'+temps+'_lien', favUrl);
				that.text('Ajouté !');
				setTimeout(function() {
					that.remove();
				}, 800);
			});

            ferveX('#voirfavoris').click(function(e){
				e.preventDefault();
				if (!ferveX(".fervexpop-styles").length) {
					const modalStyles = `
					<style class="fervexpop-styles">
						.fervexpop-overlay {
							display: none;
							position: fixed;
							z-index: 1000;
							left: 0;
							top: 0;
							width: 100%;
							height: 100%;
							background-color: rgba(0, 0, 0, 0.5);
						}
						.fervexpop {
							position: fixed;
							top: -100%;
							left: 50%;
							transform: translate(-50%, 0);
							color: #aaa;
							background-color: #22282f;
							width: 100%;
							max-width: 680px;
							box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.6);
						}
						.fervexpop a {
							color: #aaa;
						}
						.fervexpop-content {
							padding: 20px;
						}
						.fervexpop-content .fa{
							color: #e74c3c;
						}
						.fervexpop-close {
							float: right;
							font-size: 28px;
							font-weight: bold;
							cursor: pointer;
						}
						.fervexpop-close:hover {
							color: #FFF;
						}
					</style>
					`;

					ferveX("head").append(modalStyles);
				}

				const favListe = [];
				for (const key in localStorage) {
					if (key.startsWith('FAV_') && key.endsWith('_titre')) {
						const titre = localStorage[key];
						const lienKey = key.replace('_titre', '_lien');
						const lien = localStorage[lienKey];

						if (lien) {
							favListe.push(`
								<li>
									<a href="${lien}">${titre}</a>
									&nbsp; <a href="#" class="del-favoris" data-titre-key="${key}" data-lien-key="${lienKey}"><i class="fa fa-trash"></i></a>
								</li>
							`);
						}
					}
				}

				const modalContent = `
					<div class="fervexpop-overlay">
						<div class="fervexpop">
							<div class="fervexpop-content">
								<span class="fervexpop-close">&times;</span>
								<h2>Mes Favoris</h2>
								<ul>${favListe.join("")}</ul>
							</div>
						</div>
					</div>
				`;

				ferveX("body").append(modalContent);
				ferveX(".fervexpop-overlay").fadeIn(300, function() {
					ferveX(".fervexpop").animate({ top: "20%" }, 300);
				});

				if (favListe.length === 0) {
					ferveX(".fervexpop ul").html("Pas de favoris");
				}

				ferveX(".del-favoris").click(function(event) {
					event.preventDefault();
					localStorage.removeItem(ferveX(this).data("titre-key"));
					localStorage.removeItem(ferveX(this).data("lien-key"));

					ferveX(this).parent().remove();

					if (ferveX(".fervexpop ul").children().length === 0) {
						ferveX(".fervexpop ul").html("Plus de favoris");
					}
				});

				ferveX(".fervexpop-close").click(function() {
					ferveX(".fervexpop-overlay").fadeOut(300, function() {
						ferveX(this).remove();
					});
				});

			});

            /* Horloge */
            horloge('hfr', 1);
            horloge('hqc', -5);
            function horloge(el, offset = 0) {
                if(typeof el=="string") { el = document.getElementById(el); }
                function actualiser() {
                    var date = new Date();
                    var str = date.getUTCHours()+offset;
                    if (str < 0) {str = str+24};
                    if (str > 24) {str = str-24};
                    if (str == 24) {str = 0};
                    str = ((str < 10)?'0':'')+str;
                    str += ':'+(date.getUTCMinutes()<10?'0':'')+date.getUTCMinutes();
                    str += ':'+(date.getUTCSeconds()<10?'0':'')+date.getUTCSeconds();
                    el.innerHTML = str;
                }
                actualiser();
                setInterval(actualiser,1000);
            }

            /* Recherche copain */
            ferveX('#chercheCopain').click(function(e){
                e.preventDefault();
                var s = prompt('Recherche un utilisateur sur YGG :','');
                //if (!(!s || s=='')) {window.location = '/engine/search_users?nickname='+s+'&do=search'};
                //if (!(!s || s=='')) {window.open(window.location.protocol+'//'+window.location.host+'/engine/search_users?nickname='+s+'&do=search')};
                if (!(!s || s=='')) {ferveX('<a href="'+window.location.protocol+'//'+window.location.host+'/engine/search_users?nickname='+s+'&do=search" target="blank"></a>')[0].click();  };
            });

            // Mes demandes d'upload
            var demandesUpload = ferveX('<button>', {
                id: 'demandesUpload',
                class: 'button button--icon button--icon--search',
                text: ""
            });
            var demandesUploadContent = "<span class='button-text'>Demandes d'upload où j'ai réagi</span>";
            var username = ferveX('.avatar').next('.p-navgroup-linkText').first().text();
            demandesUpload.on('click', function() {
                ferveX.get("/forum/index.php?search/&type=post", function(pageSource) {
                    var xfTokenElement = ferveX('input[name="_xfToken"]', pageSource);

                    if (xfTokenElement.length > 0) {
                        var xfTokenValue = xfTokenElement.val();

                        var form = ferveX('<form>', {
                            action: "/forum/index.php?search/search",
                            method: "POST"
                        });

                        form.append('<input type="hidden" name="c[users]" value="'+username+'">');
                        form.append('<input type="hidden" name="c[nodes][]" value="123">');
                        form.append('<input type="hidden" name="c[child_nodes]" value="1">');
                        form.append('<input type="hidden" name="search_type" value="post">');
                        form.append('<input type="hidden" name="grouped" value="1">');
                        form.append('<input type="hidden" name="_xfToken" value="' + xfTokenValue + '">');

                        ferveX('body').append(form);

                        form.submit();
                    }
                });
            });

            ferveX('.p-title-pageAction').append(demandesUpload);
            ferveX('#demandesUpload').append(demandesUploadContent);

            // ajout d'un filtre pour nos créations de post uniquement
            if (url.indexOf("/index.php?search/") > -1) {
                var demandesUploadUser = ferveX('<button>', {
                    id: 'demandesUploadUser',
                    class: 'button button--icon button--icon--search',
                    text: ""
                });
            }
            var demandesUploadUserContent = "<span class='button-text'>Filtrer uniquement mes demandes</span>";
            ferveX('.p-body-header .p-title').append(demandesUploadUser);
            ferveX('#demandesUploadUser').append(demandesUploadUserContent);

            function getLastPageNumberdemandesUpload() {
                var lastPageLink = ferveX('.pageNav-main li.pageNav-page:last-child a');
                return lastPageLink.length ? parseInt(lastPageLink.text()) : 1;
            }

            function getElementsFromPagedemandesUpload(pageNumber) {
                var url = window.location.href + '&page=' + pageNumber;
                var response = ferveX.ajax({
                    url: url,
                    type: 'GET',
                    async: false,
                }).responseText;

                var doc = ferveX.parseHTML(response);
                return ferveX(doc).find('.block-row[data-author="' + username + '"]');
            }

            ferveX('#demandesUploadUser').on("click", function(e){
                var lastPage = getLastPageNumberdemandesUpload();
                var allElements = [];

                for (var i = 1; i <= lastPage; i++) {
                    var elementsFromPage = getElementsFromPagedemandesUpload(i);
                    allElements = allElements.concat(Array.from(elementsFromPage));
                }

                var filteredElements = allElements.filter(function (element) {
                    return element.getAttribute('data-author') === username;
                });

                var resultList = ferveX('.block-body');
                resultList.empty();
                ferveX.each(filteredElements, function (_, element) {
                    resultList.append(element);
                });

                var pagination = ferveX('.pageNavWrapper');
                if (pagination.length) {
                    pagination.remove();
                }
            });



            /* affichage du nb messages qu'on a écrits par post */
            if (ferveX('body').data('template') === "whats_new_posts" || ferveX('body').data('template') === "forum_view") {
                ferveX('.structItem').each(function() {
                    var title = ferveX(this).find('.structItem-title');
                    var liste = ferveX(this).find('.structItem-statuses');
                    if (!liste.length) {title.before("<ul class='structItem-statuses'></ul>")}
                    liste = ferveX(this).find('.structItem-statuses');

                    var structItemCellMetaElement = ferveX(this).find('.structItem-cell--meta');
                    if (structItemCellMetaElement.length) {
                        var structItemCellMeta = structItemCellMetaElement.attr('title');

                        if (structItemCellMeta.includes('Premier message apprécié:')) {
                            var messageCount2 = parseInt(structItemCellMeta.split(':')[1].trim());
                            if (messageCount2 !== 0) {
                                var messageText2 = 'Le premier message<br>a reçu ' + messageCount2 + ' j\'aime !';
                                var messageElement2 = ferveX('<li style="font-size:12px; cursor: help" rel="fervextip" title="' + messageText2 + '">' + messageCount2 + ' 🎔 </li>');

                                liste.prepend(messageElement2);
                            }
                        }
                    }

                    var secondaryTitleElement = ferveX(this).find('.structItem-secondaryIcon');
                    if (secondaryTitleElement.length) {
                        var secondaryTitle = secondaryTitleElement.attr('title');

                        if (secondaryTitle.includes('Vous avez envoyé')) {
                            var messageCount = parseInt(secondaryTitle.match(/\d+/)[0]);
                            var messageText = (messageCount === 1) ? 'Vous avez écrit ' + messageCount + ' message' : 'Vous avez écrit ' + messageCount + ' messages';
                            var messageElement = ferveX('<li style="font-size:12px; cursor: help" rel="fervextip" title="' + messageText + '">' + messageCount + ' 🗨</li>');

                            liste.prepend(messageElement);
                        }

                    }

                });
            }

            /* Création lien profil YGG */
            ferveX(".message-userDetails .message-name .username").each(function() {
                var userPseudo = ferveX.trim(ferveX(this).text());
                var userSection = ferveX(this).closest(".message-user");
                var userProfil, userInbox, userRatio, userUp, userUpOctet, userDown, userDownOctet, userDelta;
                var urlSearch = "https://www.ygg.re/engine/search_users?nickname=" + encodeURIComponent(userPseudo);

                // Requête pour charger le contenu HTML de la recherche user
                fetch(urlSearch)
                    .then(response => response.text())
                    .then(responseText => {
                    var doc = ferveX(responseText);
                    var usersFound = ferveX(doc).find(".card-title");

                    usersFound.each(function() {
                        var userFound = ferveX(this).text().trim();
                        if (userFound === userPseudo) {
                            userProfil = ferveX(this).parent().prev().attr("href");
                            userUp = ferveX(this).parent().next().find(".pull-left strong").first().text();
                            userDown = ferveX(this).parent().next().find(".pull-left strong").eq(1).text();

                            var userUpUnite = userUp.substring(userUp.length-2);
                            if (userUpUnite == 'Po') {
                                userUpOctet = userUp.slice(0, -2) * 1125899906842624;
                            } else if (userUpUnite == 'To') {
                                userUpOctet = userUp.slice(0, -2) * 1099511627776;
                            } else {
                                userUpOctet = userUp.slice(0, -2) * 1073741824;
                            }
                            var userDownUnite = userDown.substring(userDown.length-2);
                            if (userDownUnite == 'Po') {
                                userDownOctet = userDown.slice(0, -2) * 1125899906842624;
                            } else if (userDownUnite == 'To') {
                                userDownOctet = userDown.slice(0, -2) * 1099511627776;
                            } else {
                                userDownOctet = userDown.slice(0, -2) * 1073741824;
                            }
                            userDelta = parseFloat(userUpOctet) - parseFloat(userDownOctet);
                            userRatio = (parseFloat(userUpOctet) / parseFloat(userDownOctet)).toFixed(3);
                            return false;
                        }
                    });
                    if (userProfil) {
                        userSection.append(
                            '<div style="text-align:center; margin-top:12px; padding:5px 0;; cursor: default">' +
                            '    <div><i class="fa fa-user"></i> <a href="' + userProfil + '">Profil YGG</a></div>' +
                            '    <div style="padding: 5px">' +
                            '        <span class="userBanner userBanner--green message-userBanner" style="display:inline-block;background:#28a745;border-color:#28a745;" rel="fervextip" title="Quantité envoyée"><i class="fa fa-upload"></i> ' + userUp.replace(/(\D+)$/, ' $1') + '</span>' +
                            '        <span class="userBanner userBanner--red message-userBanner" style="display:inline-block;background:#dc3545;border-color:#dc3545;" rel="fervextip" title="Quantité téléchargée"><i class="fa fa-download"></i> ' + userDown.replace(/(\D+)$/, ' $1') + '</span>' +
                            '    </div>' +
                            '    <div style="padding: 5px">' +
                            '        <div style="font-size:90%"><span rel="fervextip" title="Ratio"><i class="fa fa-balance-scale"></i> ' + userRatio + '</span></div>' +
                            '        <div style="font-size:90%"><span rel="fervextip" title="Téléchargement restant">Δ ' + (userDelta<0 ? '<1 !' : formatOctets(userDelta).replace(/(\D+)$/, ' $1')) + '</span></div>' +
                            '    </div>' +
                            '</div>'
                        );
                        ferveX(this).attr("data-profilygg", userProfil);
                    }

                })
            });
            ferveX(document).on('mouseenter', 'a[data-xf-init=member-tooltip]', function(e) {
                var urlTemp = ferveX(this).attr('href');
                var regex = /members\/([^\/.]+)/;

                var match = urlTemp.match(regex);
                if (match !== null) {
                    var userPseudo = match[1];
                    var userProfil;
                    var urlSearch = "https://www.ygg.re/engine/search_users?nickname=" + encodeURIComponent(userPseudo);

                    fetch(urlSearch)
                        .then(response => response.text())
                        .then(responseText => {
                        var doc = ferveX(responseText);
                        var usersFound = ferveX(doc).find(".card-title");

                        usersFound.each(function() {
                            var userFound = ferveX(this).text().trim();
                            if (userFound.toUpperCase() === userPseudo.toUpperCase()) {
                                userProfil = ferveX(this).parent().prev().attr("href");
                                return false;
                            }
                        });
                        if (userProfil) {
                            setTimeout(function() {
                                ferveX('.tooltip--member').each(function() {
                                    if (ferveX(this).find('.buttonGroup .profil-ygg').length === 0) {
                                        ferveX(this).find('.buttonGroup').append('<a href="' + userProfil + '" class="button--link button profil-ygg">Profil YGG</a>');
                                    };
                                });
                            }, 1000);
                        }
                    })
                }

            })

            if (url.indexOf("/forum/index.php?members/") > -1) {
                var userPseudo = ferveX('.memberHeader-name .username').text().trim();
                var userProfil;
                var urlSearch = "https://www.ygg.re/engine/search_users?nickname=" + encodeURIComponent(userPseudo);

                fetch(urlSearch)
                    .then(response => response.text())
                    .then(responseText => {
                    var doc = ferveX(responseText);
                    var usersFound = ferveX(doc).find(".card-title");

                    usersFound.each(function() {
                        var userFound = ferveX(this).text().trim();
                        if (userFound === userPseudo) {
                            userProfil = ferveX(this).parent().prev().attr("href");
                            return false;
                        }
                    });
                    if (userProfil) ferveX('.memberHeader-buttons').append('<a href="' + userProfil + '" class="button button--link">Profil YGG</a>');
                })

            };

        });

    } else {

        ferveX(document).ready(function() {

            /* Antipub */
            if ( ferveX('#top nav li.color').is(':contains("Regarder la télé")') ){
                ferveX('#top nav li.color:contains("Regarder la télé")').remove();
                ferveX('#top nav li.color').css("width", "12.5%");
            }
            if ( ferveX('#cat ul li').is(':contains("Télécharger en illimité")') ){
                ferveX('#cat ul li:contains("Télécharger en illimité")').remove();
            }
            if ( ferveX('#cat ul li').is(':contains("Utiliser un VPN")') ){
                ferveX('#cat ul li:contains("Utiliser un VPN")').remove();
            }
            ferveX('header a.donate').remove();


            /* Fermeture Sidebar gauche */
            var fervexSidebar = getCookie('fervex_sidebar');
            if (fervexSidebar == null || fervexSidebar == "off"){
                if (ferveX('#cat').hasClass('active')) {
                    ferveX('.open').click();
                }
            } else {
                if (!ferveX('#cat').hasClass('active')) {
                    ferveX('.open').click();
                }
            }


            /* Agrandissement modal NFO */
            if (ferveX('#nfoModal .modal-dialog').hasClass('modal-sm')) {
                ferveX('#nfoModal .modal-dialog').toggleClass('modal-sm modal-lg');
            }


            /* Zupimages */
            if (url.indexOf("/user/upload_torrent") > -1) {
                ferveX('<div style="position:absolute;right:20px;top:-95px;" class="p-2 bg-light border"><iframe src="https://www.zupimages.net/api/index.php?background=transparent&amp;color=000000&amp;header=yes&amp;lastimage=yes" width="210" height="120" frameborder="no" scrolling="no"></iframe></div>').appendTo('#upload-torrent > div > div.row:nth-child(8)');
            }

            /* Sauvegarde Prez (édition) */
            if (url.indexOf("/user/edit_torrent") > -1) {
                /* titre torrent */
                ferveX('#edit-torrent>div>div:nth-child(5)>div.col-md-2.field-label-responsive>label').after('<div style="margin-top: -5px;"><a href="" id="save-titre">Sauvegarder</a></div>');

                ferveX("#save-titre").click(function(e){
                    e.preventDefault();
                    var titreperso = ferveX("#edit-torrent input#name").val();
                    localStorage.setItem("titreperso", titreperso);
                });

                /* contenu prez */
                ferveX('#edit-torrent>div>div:nth-child(6)>div.col-md-2.field-label-responsive>label').after('<button class="btn btn-secondary my-2" id="save-prez">Sauvegarder la prez</button>');

                ferveX("#save-prez").click(function(e){
                    e.preventDefault();
                    var prez = ferveX('.wysibb-text-editor').html();
                    localStorage.setItem('prezperso', prez);
                });
            }

            /* Stockage Prez (création) */
            if (url.indexOf("/user/upload_torrent") > -1) {
                /* titre torrent */
                if (localStorage.getItem("titreperso") !== null && localStorage.getItem("titreperso") !== "") {
                    ferveX('#upload-torrent>div>div:nth-child(8)>div.col-md-2.field-label-responsive>label').after('<div style="margin-top: -5px;"><a href="" id="save-titre">Sauvegarder</a> | <a href="" id="get-titre">Restaurer</a></div>');
                } else {
                    ferveX('#upload-torrent>div>div:nth-child(8)>div.col-md-2.field-label-responsive>label').after('<div style="margin-top: -5px;"><a href="" id="save-titre">Sauvegarder</a></div>');
                }

                ferveX("#save-titre").click(function(e){
                    e.preventDefault();
                    var titreperso = ferveX("#upload-torrent input#name").val();
                    localStorage.setItem("titreperso", titreperso);
                });
                ferveX("#get-titre").click(function(e){
                    e.preventDefault();
                    var titreperso = localStorage.getItem("titreperso");
                    ferveX("#upload-torrent input#name").val(titreperso);
                });

                /* contenu prez */
                if (localStorage.getItem("prezperso") !== null && localStorage.getItem("prezperso") !== "") {
                    ferveX('#upload-torrent button[type=submit]').after('<button class="btn btn-secondary mx-1" id="get-prez">Restaurer la prez sauvegardée</button>');
                }
                ferveX('#upload-torrent button[type=submit]').after('<button class="btn btn-secondary mx-1" id="save-prez">Sauvegarder la prez</button>');

                ferveX("#save-prez").click(function(e){
                    e.preventDefault();
                    var prez = ferveX('.wysibb-text-editor').html();
                    localStorage.setItem('prezperso', prez);
                });
                ferveX("#get-prez").click(function(e){
                    e.preventDefault();
                    var prez = localStorage.getItem("prezperso");
                    ferveX(".wysibb-text-editor").html(prez);
                });
            }


            /* Boutons de recherche */
            ferveX('.search-criteria button.solo')
                .after(' <a href="" class="recherche-fervex" id="recherche-seriesD" style="'+styleBoutonS+'"><img src="https://nsa40.casimages.com/img/2021/01/02/210102062556828242.png" class="pr-1" style="padding-bottom: 2px;"> Séries (Date)</a>')
                .after(' <a href="" class="recherche-fervex" id="recherche-seriesP" style="'+styleBoutonS+'"><img src="https://nsa40.casimages.com/img/2021/01/02/210102062556828242.png" class="pr-1" style="padding-bottom: 2px;"> Séries (Poids)</a>')
                .after(' <a href="" class="recherche-fervex" id="recherche-filmD"   style="'+styleBoutonF+'"><img src="https://nsa40.casimages.com/img/2021/01/02/210102073131718091.png" class="pr-1" style="padding-bottom: 2px;"> Films (Date)</a>')
                .after(' <a href="" class="recherche-fervex" id="recherche-filmP"   style="'+styleBoutonF+'"><img src="https://nsa40.casimages.com/img/2021/01/02/210102073131718091.png" class="pr-1" style="padding-bottom: 2px;"> Films (Poids)</a>')
                .after('<a href="" class="recherche-fervex w65" rel="fervextip" id="recherche-ok" style="'+styleBouton+'" title="Ajouter les guillemets automatiquement !"><i class="ico_quote-left"></i> <i class="ico_quote-right"></i></a>');

            ferveX('#recherche-ok').after(' <div style="width:100%;height:10px;display:block"> </div>');

            ferveX('.search-criteria button.solo').css({
                "display": "inline-block",
                "font-size": "16px"
            });

            ferveX('.search-criteria .alone').css('text-align', 'center');
            ferveX( ".bulle" ).css({
                "border-radius": "16px",
                "min-width": "16px",
                "width": "auto",
                "padding": "0 5px"
            });

            ferveX('.recherche-fervex, .search-criteria button.solo').hover(function(){
                ferveX(this).addClass('butonFervexHover');
            }, function(){
                ferveX(this).removeClass('butonFervexHover');
            });

            var rechercheGuillemet = false;
            ferveX('#recherche-ok').click(function(e){
                e.preventDefault();
                if(rechercheGuillemet) {
                    var temp = ferveX(".search-criteria input[name='name']").val().replace(/"/g, '');
                    ferveX(".search-criteria input[name='name']").val(temp);
                    ferveX(this).css('background', '#4e5c6f');
                    rechercheGuillemet = false;
                } else {
                    var temp = ferveX(".search-criteria input[name='name']").val().replace(/"/g, ' ').trim();
                    if (temp!=''){
                        temp = temp.split(" ").join("\" \"");
                        ferveX(".search-criteria input[name='name']").val('"'+temp+'"');
                        ferveX(this).css('background', '#30353c');
                        rechercheGuillemet = true;
                    }
                }
            });
            if (url.indexOf("/engine/search") > -1) {
                let recherchePrecedente = new URLSearchParams(document.location.search.substring(1));
                let recherchePrecedenteValeur = recherchePrecedente.get("name");
                if (recherchePrecedenteValeur != null){
                    ferveX(".search-criteria input[name='name']").val(recherchePrecedenteValeur);
                }
            }

            ferveX('#recherche-filmP').click(function(e){
                e.preventDefault();
                rechercheF = ferveX(".search-criteria input[name='name']").val();
                rechercheU = ferveX(".search-criteria input[name='uploader']").val();
                window.location = baseUrl+'search?name='+rechercheF+'&description=&file=&uploader='+rechercheU+'&category=2145&sub_category=2183&do=search&order=desc&sort=size';
            });

            ferveX('#recherche-filmD').click(function(e){
                e.preventDefault();
                rechercheF = ferveX(".search-criteria input[name='name']").val();
                rechercheU = ferveX(".search-criteria input[name='uploader']").val();
                window.location = baseUrl+'search?name='+rechercheF+'&description=&file=&uploader='+rechercheU+'&category=2145&sub_category=2183&do=search&order=desc&sort=publish_date';
            });

            ferveX('#recherche-seriesP').click(function(e){
                e.preventDefault();
                rechercheF = ferveX(".search-criteria input[name='name']").val();
                rechercheU = ferveX(".search-criteria input[name='uploader']").val();
                window.location = baseUrl+'search?name='+rechercheF+'&description=&file=&uploader='+rechercheU+'&category=2145&sub_category=2184&do=search&order=desc&sort=size';
            });

            ferveX('#recherche-seriesD').click(function(e){
                e.preventDefault();
                rechercheF = ferveX(".search-criteria input[name='name']").val();
                rechercheU = ferveX(".search-criteria input[name='uploader']").val();
                window.location = baseUrl+'search?name='+rechercheF+'&description=&file=&uploader='+rechercheU+'&category=2145&sub_category=2184&do=search&order=desc&sort=publish_date';
            });


            /* bouton DL torrent */
            function gettorrent() {
                ferveX('a[id^=get_nfo]').not('.ico-dl').each(function(){
                    var that = ferveX(this);
                    that.parent('td').css("white-space", "nowrap");
                    var torrent = that.attr('target');
                    var href = that.parent('td').prev().find('a').attr('href');

                    that.before('<a href="/engine/download_torrent?id='+torrent+'" rel="fervextip" title="Télécharger le torrent" class="py-1 pr-2 mr-2 fervexDL" style="border-right:1px solid #ccc;"><span class="ico_download text-primary"></span></a>');
                    that.before('<a href="#" data-refresh="'+href+'" rel="fervextip" title="Stats du torrent en temps réel" class="py-1 pr-2 mr-2 fervexRefresh" style="border-right:1px solid #ccc;"><span class="ico_refresh text-success"></span></a>');
                    that.addClass('ico-dl');

                    var link = ferveX('<span>', {
                        'data-lastcom': href,
                        rel: 'fervextip',
                        title: 'Afficher les derniers commentaires',
                        class: 'fervexLastCom',
                        style: 'cursor:pointer'
                    });

                    that.parent('td').next().wrapInner(link);
                });

                ferveX('.fervexDL span, .fervexRefresh span, .fervexLastCom').hover(function(){
                    ferveX(this).addClass('text-danger');
                }, function(){
                    ferveX(this).removeClass('text-danger');
                });

                ferveX("[data-lastcom]").on("click", function(e){
                    e.preventDefault();
                    var that = ferveX(this);
                    var href = that.data("lastcom");

                    ferveX.get(href, function(data, status) {
                        var comms = ferveX(data).find("#comm").html();
                        ferveX('body').prepend('<div class="modal fade" id="lastComModal" tabindex="-1" role="dialog" aria-labelledby="lastComModalLabel" aria-hidden="true">' +
                                               '  <div class="modal-dialog modal-lg" role="document">' +
                                               '    <div class="modal-content">' +
                                               '      <div class="modal-header border-dark">' +
                                               '        <h5 class="modal-title pr-3" id="lastComModalLabel">Derniers commentaires du torrent</h5>' +
                                               '        <button type="button" class="close text-light" data-dismiss="modal" aria-label="Close">' +
                                               '          <span aria-hidden="true">&times;</span>' +
                                               '        </button>' +
                                               '      </div>' +
                                               '      <div class="modal-body p-0">' +
                                               '          <div>' + comms + '</div>' +
                                               '      </div>' +
                                               '    </div>' +
                                               '  </div>' +
                                               '</div>');
                        $('#lastComModal').modal('show');
                    });

                });

                ferveX("a[data-refresh]").on("click", function(e){
                    e.preventDefault();
                    var that = ferveX(this);
                    that.find('span').addClass("ico_spin");
                    var href = that.data("refresh");

                    ferveX.get(href, function(data, status) {
                        var stats = (ferveX(data).find("#register").length > 0) ? 1 : 0;
                        var hashTorrent = ferveX(data).find("#informationsContainer > div > table > tbody > tr:nth-child(5) > td:nth-child(2)").text();
                        var random = Math.random().toString(36).slice(2);
                        var getStats = 'https://yggland.fr/FAQ-Tutos/info-torrent.php?hash='+hashTorrent+'&seeders&leechers&completed&random';

                        ferveX('#statsModal').remove();
                        ferveX.get(getStats, function(data2, status) {
                            var statsTorrent = data2.split('|');

                            ferveX('body').prepend('<div class="modal fade" id="statsModal" tabindex="-1" role="dialog" aria-labelledby="statsModalLabel" aria-hidden="true">' +
                                                   '  <div class="modal-dialog" style="max-width: fit-content" role="document">' +
                                                   '    <div class="modal-content">' +
                                                   '      <div class="modal-header border-dark">' +
                                                   '        <h5 class="modal-title pr-3" id="statsModalLabel">Stats torrent en temps réel</h5>' +
                                                   '        <button type="button" class="close text-light" data-dismiss="modal" aria-label="Close">' +
                                                   '          <span aria-hidden="true">&times;</span>' +
                                                   '        </button>' +
                                                   '      </div>' +
                                                   '      <div class="modal-body p-0">' +
                                                   '        <table class="table table-bordered dark bg-dark text-light text-center m-0">' +
                                                   '          <tbody>' +
                                                   '            <tr>' +
                                                   '              <td class="border-black" width="115">Seeders</th>' +
                                                   '              <td class="border-black" width="115">Leechers</th>' +
                                                   '              <td class="border-black" width="115">Complétés</th>' +
                                                   '            </tr>' +
                                                   '            <tr>' +
                                                   '              <td class="border-black text-success text-bold">' + statsTorrent[0] + '</td>' +
                                                   '              <td class="border-black text-danger text-bold">' + statsTorrent[1] + '</td>' +
                                                   '              <td class="border-black text-light text-bold">' + statsTorrent[2] + '</td>' +
                                                   '            </tr>' +
                                                   '          </tbody>' +
                                                   '        </table>' +
                                                   '      </div>' +
                                                   '    </div>' +
                                                   '  </div>' +
                                                   '</div>');
                            $('#statsModal').modal('show');
                            that.find('span').removeClass("ico_spin");
                        });

                    });

                });
            }

            if (url.indexOf("/engine/search") > -1) {
                gettorrent();
            } else {
                setTimeout(gettorrent, 800);
            }

            ferveX('td[id^=display-more]').click(function(e){
                setTimeout(gettorrent, 800);
            });


            /* notif */
            if (url.indexOf("/user/notifications") > -1) {
                var notifNonLues = parseInt(ferveX('#top_panel [data-balloon="Notifications non lues"]').text());
                var rows = ferveX("table.notifications tr");
                var rowCount = rows.length;

                for (var i = 0; i < rowCount; i++) {
                    var row = ferveX(rows[i]);
                    var td1 = row.find('td:first-child()');
                    var td2 = td1.next();
                    var td3 = td2.next();
                    var hrefuser = td2.find('strong').eq(0).text();
                    var hreftorrent = td2.find('strong').eq(1).text();
                    var hrefstatus = td2.find('font').eq(0).text();
                    var hrefpending = td2.find('font').eq(1).text();
                    var link = row.attr("onclick");
                    var hrefval = link.substring(link.indexOf("'") + 1, link.lastIndexOf("'"));

                    var replacementHtml = '';
                    if (hreftorrent.length) {
                        replacementHtml = '<b>'+hrefuser+'</b> a commenté <a href="'+hrefval+'" class="text-primary"><b>'+hreftorrent+'</b></a>';
                        td3
                            .prepend('<i class="ico_eye text-primary get-notif mr-1" style="cursor:pointer" data-url="'+hrefval+'"></i> ')
                            .addClass("text-nowrap");
                    } else if (hrefstatus.length) {
                        var typepending = (hrefstatus === "approuvé") ? "success" : (hrefstatus === "supprimé") ? "danger" : "warning";
                        replacementHtml = '<b>'+hrefuser+'</b><br><span class="text-'+typepending+'">'+hrefstatus+'</span> par la TP &rarr; <a href="'+hrefval+'" class="text-'+typepending+'"><b>'+hrefpending+'</b></a>';
                    } else {
                        replacementHtml = '<a href="'+hrefval+'" class="text-primary"><b>'+td2.html()+'</b></a>';
                    }

                    if (replacementHtml) {
                        td2.html(replacementHtml);
                    }

                    row
                        .prop("onclick", null)
                        .removeAttr("onclick")
                        .off("click")
                        .css('cursor', 'default');


                    if (i < notifNonLues) {
                        td1.append(' ⚡');
                    }
                }

                ferveX(".get-notif").on("click", function(e){
                    e.preventDefault();
                    var that = ferveX(this);
                    var href = that.data("url");

                    ferveX.get(href, function(data, status) {
                        var comm = ferveX(data).find("#focusedComment").html();
                        ferveX('body').prepend('<div class="modal fade" id="getNotifModal" tabindex="-1" role="dialog" aria-labelledby="getNotifModalLabel" aria-hidden="true">' +
                                               '  <div class="modal-dialog modal-lg" style="max-width:800px!important" role="document">' +
                                               '    <div class="modal-content">' +
                                               '      <div class="modal-header border-dark">' +
                                               '        <h5 class="modal-title pr-3" id="getNotifModalLabel">Commentaire reçu</h5>' +
                                               '        <button type="button" class="close text-light" data-dismiss="modal" aria-label="Close">' +
                                               '          <span aria-hidden="true">&times;</span>' +
                                               '        </button>' +
                                               '      </div>' +
                                               '      <div class="modal-body p-0">' +
                                               '          <div>' + comm + '</div>' +
                                               '      </div>' +
                                               '    </div>' +
                                               '  </div>' +
                                               '</div>');
                        $('#getNotifModal').modal('show');
                    });
                });

                ferveX('.get-notif').hover(function(){
                    ferveX(this).addClass('text-danger');
                }, function(){
                    ferveX(this).removeClass('text-danger');
                });

            }

            if (url.indexOf("/engine/search") > -1 || url.indexOf("/torrents/exclus") > -1) {
                var table = ferveX('.results .table').DataTable({
                    dom: "<'row'<'col-12 text-center mt-3'f>>" +
                    "<'row'<'col-12'tr>>" +
                    "<'row'<'col-12 text-center my-3'i>>",
                    stateSave: false,
                    autoWidth: false,
                    order: [],
                    ordering:  false,
                    paging: false,
                    language: 		{
                        processing:     	"Traitement en cours...",
                        search:         	"",
                        searchPlaceholder: 	"Filtrer la page en cours",
                        lengthMenu:     	"_MENU_ torrents par page",
                        info:           	"_END_ torrents affichés ",
                        infoEmpty:      	"Aucun torrent",
                        infoFiltered:   	"(filtrés sur _MAX_ torrents de la page)",
                        infoPostFix:    	"",
                        loadingRecords: 	"Chargement...",
                        zeroRecords:    	"Aucun torrent à afficher",
                        emptyTable:     	"Aucune donnée disponible",
                        paginate: {
                            first:      "Premier",
                            previous:   "<i class='fas fa-chevron-left'></i>",
                            next:       "<i class='fas fa-chevron-right'></i>",
                            last:       "Dernier"
                        },
                        aria: {
                            sortAscending:  ": activer pour trier la colonne par ordre croissant",
                            sortDescending: ": activer pour trier la colonne par ordre décroissant"
                        },
                        select: {
                            rows: {
                                _: "%d lignes sélectionnées",
                                0: "Aucune ligne sélectionnée",
                                1: "1 ligne sélectionnée"
                            }
                        },
                        buttons: {
                            colvis: 'Colonnes',
                            copy: 'Copier',
                            print: 'Imprimer'
                        }
                    }
                });
            }

            /* filtrage Downloads */
            if (url.indexOf("/user/downloads") > -1 ) {
                ferveX('<div class="text-center pt-2"><label><input type="search" class="form-control form-control-sm" id="rechercheDL" placeholder="Filtrer les torrents"></label></div>').insertAfter("#middle main .inbox");

                ferveX("#rechercheDL").on("keyup", function() {
                    var value = ferveX(this).val().toLowerCase();
                    ferveX("#middle main .inbox tr").filter(function() {
                        ferveX(this).toggle(ferveX(this).find("td:eq(1)").text().toLowerCase().indexOf(value) > -1)
                    });
                });

            }

            /* test torrent via le hash */
            if (url.indexOf("/torrent/") > -1 ) {
                var hashtorrent = ferveX("#informationsContainer > div > table > tbody > tr:nth-child(5) > td:nth-child(2)").text();
                ferveX("#informationsContainer > div > table > tbody > tr:nth-child(5) > td:nth-child(2)").append('<a href="https://yggland.fr/FAQ-Tutos/test-torrent-tracker-ygg.php?hash='+hashtorrent+'" class="btn btn-success ml-2" target="_blank" style="padding: 2px 6px">Tester</a>');

            }

            /* Correction liens sur le profil */
            if (url.indexOf('/user/account') > -1 ) {
                var username = ferveX('.detail-account tbody tr:first-child td:nth-child(2) strong').text().trim();
                var urlTorrents = '/engine/search?name=&description=&file=&uploader=' + username + '&category=all&sub_category=&do=search';
                var profile = ferveX('.card-footer a').attr('href');
                var urlComments = profile + '?action=show_comments';
                ferveX('.detail-account tbody tr:nth-child(4) a').attr('href', urlTorrents);
                ferveX('.detail-account tbody tr:nth-child(5) a').attr('href', urlComments);
            }

            /* Seed a zéro dans ses propres torrents */
            if (url.indexOf('/user/my_torrents') > -1 ) {

                async function getAllTableData() {
                    let allTableData = [];
                    let currentPage = 0;
                    let totalNumberOfPages = 0;

                    const lastPaginationLink = ferveX('ul.pagination li:last-child a');
                    if (lastPaginationLink.attr('data-ci-pagination-page')) {
                        totalNumberOfPages = parseInt(lastPaginationLink.attr('data-ci-pagination-page'));
                    }

                    console.log('Total number of pages:', totalNumberOfPages);


                    while (true) {
                        let pageData = await getTableData(currentPage);
                        if (pageData.length === 0) {
                            break;
                        }
                        allTableData = allTableData.concat(pageData);
                        currentPage++;
                        updateProgressBar(currentPage, totalNumberOfPages);
                    }
                    return allTableData;
                }

                async function getTableData(pageNumber) {
                    let url = `https://www.ygg.re/user/my_torrents?page=${pageNumber * 50}`;
                    let response = await ferveX.ajax({ url });
                    let tempDiv = ferveX('<div>');
                    tempDiv.html(response);
                    let tableRows = tempDiv.find('.results table tbody tr');

                    return tableRows.toArray();
                }

                function filterRowsWithZero(data) {
                    return data.filter(row => {
                        let avantDerniereColonne = row.cells[row.cells.length - 3];
                        return avantDerniereColonne.textContent.trim() === "0";
                    });
                }

                function displayFilteredTable(filteredData) {
                    ferveX('.table-responsive.results').remove();

                    let newTableHTML = '<table class="table">';
                    newTableHTML += '<thead>';
                    newTableHTML += '<tr>';
                    newTableHTML += '<th class="no">Type</th>';
                    newTableHTML += '<th class="no">Nom</th>';
                    newTableHTML += '<th class="no">NFO</th>';
                    newTableHTML += '<th class="no">Comm.</th>';
                    newTableHTML += '<th class="no">Age</th>';
                    newTableHTML += '<th class="no">Taille</th>';
                    newTableHTML += '<th class="no">Compl.</th>';
                    newTableHTML += '<th class="no">Seed</th>';
                    newTableHTML += '<th class="no">Leech</th>';
                    newTableHTML += '<th class="no"></th>';
                    newTableHTML += '</tr>';
                    newTableHTML += '</thead>';
                    newTableHTML += '<tbody>';
                    filteredData.forEach(row => {
                        newTableHTML += '<tr torrent-id="' + ferveX(row).attr('torrent-id') + '">';
                        ferveX(row).children('td').each(function() {
                            newTableHTML += '<td>' + ferveX(this).html() + '</td>';
                        });
                        newTableHTML += '</tr>';
                    });
                    newTableHTML += '</tbody>';
                    newTableHTML += '</table>';

                    ferveX('<div class="table-responsive results" style="width: 100%">').html(newTableHTML).insertAfter('#btnFilter');
                    ferveX('#btnFilter').replaceWith('<h2 class="mb-3">' + filteredData.length + ' Torrent(s) sans Seed :</h2>');
                }

                ferveX('.table-responsive.results').before('<button class="btn btn-success p-1 mb-3" id="btnFilter" style="text-transform:none">Filtrer torrents sans Seed</button>');

                function updateProgressBar(currentPage, totalNumberOfPages) {
                    const progressPercentage = Math.floor((currentPage / totalNumberOfPages) * 100);
                    const progressBar = ferveX('#progressBar .progress-bar');
                    progressBar.css('width', progressPercentage + '%');
                    progressBar.text(progressPercentage + '%');
                }

                ferveX('#btnFilter').on('click', async function () {
                    try {
                        ferveX('#progressBar').remove();
                        ferveX('.table-responsive.results')
                            .before('<div class="progress mb-3" id="progressBar" style="height: 22px;">' +
                                    '<div class="progress-bar d-flex flex-column justify-content-center h-100" role="progress-bar" style="width: 0%;font-size:0.9rem" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">0%</div>' +
                                    '</div>');

                        const allData = await getAllTableData();
                        const filteredData = filterRowsWithZero(allData);

                        const totalNumberOfPages = Math.ceil(allData.length / 50);
                        displayFilteredTable(filteredData);
                        ferveX('ul.pagination').parent('section').parent().parent('section').remove();

                        updateProgressBar(totalNumberOfPages, totalNumberOfPages);

                        gettorrent();
                        var fervexPreview = getCookie('fervex_preview');
                        if (fervexPreview == null || fervexPreview == 'on') {
                            setTimeout(function () {
                                removePreview();
                                addPreview();
                            }, 400);
                        }

                        ferveX(document).on('click', 'a#remove', function() {
                            var self = this;
                            var conf = confirm("Confirmez-vous la suppression de ce torrent ?");
                            if(conf) {
                                var t_id = $(this).closest('tr').attr('torrent-id');
                                $.post('https://www.ygg.re/user/remove_torrent', {id : t_id})
                                    .done(function(id){
                                    $(self).closest('tr').hide(500);
                                })
                                    .fail(function(xhr, status, error) {
                                    alert(error);
                                });
                            }
                        });

                        ferveX('#progressBar').remove();
                    } catch (error) {
                        console.error('Une erreur s\'est produite:', error);
                    }
                });

            }
        });
    }

});

////

/*
 * This combined file was created by the DataTables downloader builder:
 *   https://datatables.net/download
 *
 * To rebuild or modify this file with the latest versions of the included
 * software please visit:
 *   https://datatables.net/download/#bs4/dt-1.10.24/cr-1.5.3/r-2.2.7/rr-1.2.7
 *
 * Included libraries:
 *  DataTables 1.10.24, ColReorder 1.5.3, Responsive 2.2.7, RowReorder 1.2.7
 */

/*!
   Copyright 2008-2021 SpryMedia Ltd.

 This source file is free software, available under the following license:
   MIT license - http://datatables.net/license

 This source file is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.

 For details please refer to: http://www.datatables.net
 DataTables 1.10.24
 ©2008-2021 SpryMedia Ltd - datatables.net/license
*/
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(k,y,z){k instanceof String&&(k=String(k));for(var q=k.length,G=0;G<q;G++){var O=k[G];if(y.call(z,O,G,k))return{i:G,v:O}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.ISOLATE_POLYFILLS=!1;
$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(k,y,z){if(k==Array.prototype||k==Object.prototype)return k;k[y]=z.value;return k};$jscomp.getGlobal=function(k){k=["object"==typeof globalThis&&globalThis,k,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var y=0;y<k.length;++y){var z=k[y];if(z&&z.Math==Math)return z}throw Error("Cannot find global object");};$jscomp.global=$jscomp.getGlobal(this);
$jscomp.IS_SYMBOL_NATIVE="function"===typeof Symbol&&"symbol"===typeof Symbol("x");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX="$jscp$";var $jscomp$lookupPolyfilledValue=function(k,y){var z=$jscomp.propertyToPolyfillSymbol[y];if(null==z)return k[y];z=k[z];return void 0!==z?z:k[y]};
$jscomp.polyfill=function(k,y,z,q){y&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(k,y,z,q):$jscomp.polyfillUnisolated(k,y,z,q))};$jscomp.polyfillUnisolated=function(k,y,z,q){z=$jscomp.global;k=k.split(".");for(q=0;q<k.length-1;q++){var G=k[q];if(!(G in z))return;z=z[G]}k=k[k.length-1];q=z[k];y=y(q);y!=q&&null!=y&&$jscomp.defineProperty(z,k,{configurable:!0,writable:!0,value:y})};
$jscomp.polyfillIsolated=function(k,y,z,q){var G=k.split(".");k=1===G.length;q=G[0];q=!k&&q in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var O=0;O<G.length-1;O++){var ma=G[O];if(!(ma in q))return;q=q[ma]}G=G[G.length-1];z=$jscomp.IS_SYMBOL_NATIVE&&"es6"===z?q[G]:null;y=y(z);null!=y&&(k?$jscomp.defineProperty($jscomp.polyfills,G,{configurable:!0,writable:!0,value:y}):y!==z&&($jscomp.propertyToPolyfillSymbol[G]=$jscomp.IS_SYMBOL_NATIVE?$jscomp.global.Symbol(G):$jscomp.POLYFILL_PREFIX+G,
G=$jscomp.propertyToPolyfillSymbol[G],$jscomp.defineProperty(q,G,{configurable:!0,writable:!0,value:y})))};$jscomp.polyfill("Array.prototype.find",function(k){return k?k:function(y,z){return $jscomp.findInternal(this,y,z).v}},"es6","es3");
(function(k){"function"===typeof define&&define.amd?define(["jquery"],function(y){return k(y,window,document)}):"object"===typeof exports?module.exports=function(y,z){y||(y=window);z||(z="undefined"!==typeof window?require("jquery"):require("jquery")(y));return k(z,y,y.document)}:k(jQuery,window,document)})(function(k,y,z,q){function G(a){var b,c,d={};k.each(a,function(e,f){(b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" ")&&(c=e.replace(b[0],b[2].toLowerCase()),
d[c]=e,"o"===b[1]&&G(a[e]))});a._hungarianMap=d}function O(a,b,c){a._hungarianMap||G(a);var d;k.each(b,function(e,f){d=a._hungarianMap[e];d===q||!c&&b[d]!==q||("o"===d.charAt(0)?(b[d]||(b[d]={}),k.extend(!0,b[d],b[e]),O(a[d],b[d],c)):b[d]=b[e])})}function ma(a){var b=u.defaults.oLanguage,c=b.sDecimal;c&&Va(c);if(a){var d=a.sZeroRecords;!a.sEmptyTable&&d&&"No data available in table"===b.sEmptyTable&&V(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&d&&"Loading..."===b.sLoadingRecords&&V(a,a,
"sZeroRecords","sLoadingRecords");a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&c!==a&&Va(a)}}function yb(a){R(a,"ordering","bSort");R(a,"orderMulti","bSortMulti");R(a,"orderClasses","bSortClasses");R(a,"orderCellsTop","bSortCellsTop");R(a,"order","aaSorting");R(a,"orderFixed","aaSortingFixed");R(a,"paging","bPaginate");R(a,"pagingType","sPaginationType");R(a,"pageLength","iDisplayLength");R(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":
"");"boolean"===typeof a.scrollX&&(a.scrollX=a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b<c;b++)a[b]&&O(u.models.oSearch,a[b])}function zb(a){R(a,"orderable","bSortable");R(a,"orderData","aDataSort");R(a,"orderSequence","asSorting");R(a,"orderDataType","sortDataType");var b=a.aDataSort;"number"!==typeof b||Array.isArray(b)||(a.aDataSort=[b])}function Ab(a){if(!u.__browser){var b={};u.__browser=b;var c=k("<div/>").css({position:"fixed",top:0,left:-1*k(y).scrollLeft(),height:1,
width:1,overflow:"hidden"}).append(k("<div/>").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(k("<div/>").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}k.extend(a.oBrowser,u.__browser);a.oScroll.iBarWidth=u.__browser.barWidth}
function Bb(a,b,c,d,e,f){var g=!1;if(c!==q){var h=c;g=!0}for(;d!==e;)a.hasOwnProperty(d)&&(h=g?b(h,a[d],d,a):a[d],g=!0,d+=f);return h}function Wa(a,b){var c=u.defaults.column,d=a.aoColumns.length;c=k.extend({},u.models.oColumn,c,{nTh:b?b:z.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=k.extend({},u.models.oSearch,c[d]);Da(a,d,k(b).data())}function Da(a,b,c){b=a.aoColumns[b];
var d=a.oClasses,e=k(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var f=(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==q&&null!==c&&(zb(c),O(u.defaults.column,c,!0),c.mDataProp===q||c.mData||(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),c.sClass&&e.addClass(c.sClass),k.extend(b,c),V(b,c,"sWidth","sWidthOrig"),c.iDataSort!==q&&(b.aDataSort=[c.iDataSort]),V(b,c,"aDataSort"));var g=b.mData,h=ia(g),
l=b.mRender?ia(b.mRender):null;c=function(n){return"string"===typeof n&&-1!==n.indexOf("@")};b._bAttrSrc=k.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(n,m,p){var t=h(n,m,q,p);return l&&m?l(t,m,n,p):t};b.fnSetData=function(n,m,p){return da(g)(n,m,p)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==k.inArray("asc",b.asSorting);c=-1!==k.inArray("desc",b.asSorting);b.bSortable&&(a||c)?a&&!c?
(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI):(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI="")}function ra(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Xa(a);for(var c=0,d=b.length;c<d;c++)b[c].nTh.style.width=b[c].sWidth}b=a.oScroll;""===b.sY&&""===b.sX||Ea(a);H(a,null,"column-sizing",[a])}function sa(a,b){a=Fa(a,"bVisible");
return"number"===typeof a[b]?a[b]:null}function ta(a,b){a=Fa(a,"bVisible");b=k.inArray(b,a);return-1!==b?b:null}function na(a){var b=0;k.each(a.aoColumns,function(c,d){d.bVisible&&"none"!==k(d.nTh).css("display")&&b++});return b}function Fa(a,b){var c=[];k.map(a.aoColumns,function(d,e){d[b]&&c.push(e)});return c}function Ya(a){var b=a.aoColumns,c=a.aoData,d=u.ext.type.detect,e,f,g;var h=0;for(e=b.length;h<e;h++){var l=b[h];var n=[];if(!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){var m=
0;for(f=d.length;m<f;m++){var p=0;for(g=c.length;p<g;p++){n[p]===q&&(n[p]=S(a,p,h,"type"));var t=d[m](n[p],a);if(!t&&m!==d.length-1)break;if("html"===t)break}if(t){l.sType=t;break}}l.sType||(l.sType="string")}}}function Cb(a,b,c,d){var e,f,g,h=a.aoColumns;if(b)for(e=b.length-1;0<=e;e--){var l=b[e];var n=l.targets!==q?l.targets:l.aTargets;Array.isArray(n)||(n=[n]);var m=0;for(f=n.length;m<f;m++)if("number"===typeof n[m]&&0<=n[m]){for(;h.length<=n[m];)Wa(a);d(n[m],l)}else if("number"===typeof n[m]&&
0>n[m])d(h.length+n[m],l);else if("string"===typeof n[m]){var p=0;for(g=h.length;p<g;p++)("_all"==n[m]||k(h[p].nTh).hasClass(n[m]))&&d(p,l)}}if(c)for(e=0,a=c.length;e<a;e++)d(e,c[e])}function ea(a,b,c,d){var e=a.aoData.length,f=k.extend(!0,{},u.models.oRow,{src:c?"dom":"data",idx:e});f._aData=b;a.aoData.push(f);for(var g=a.aoColumns,h=0,l=g.length;h<l;h++)g[h].sType=null;a.aiDisplayMaster.push(e);b=a.rowIdFn(b);b!==q&&(a.aIds[b]=f);!c&&a.oFeatures.bDeferRender||Za(a,e,c,d);return e}function Ga(a,
b){var c;b instanceof k||(b=k(b));return b.map(function(d,e){c=$a(a,e);return ea(a,c.data,e,c.cells)})}function S(a,b,c,d){var e=a.iDraw,f=a.aoColumns[c],g=a.aoData[b]._aData,h=f.sDefaultContent,l=f.fnGetData(g,d,{settings:a,row:b,col:c});if(l===q)return a.iDrawError!=e&&null===h&&(aa(a,0,"Requested unknown parameter "+("function"==typeof f.mData?"{function}":"'"+f.mData+"'")+" for row "+b+", column "+c,4),a.iDrawError=e),h;if((l===g||null===l)&&null!==h&&d!==q)l=h;else if("function"===typeof l)return l.call(g);
return null===l&&"display"==d?"":l}function Db(a,b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d,{settings:a,row:b,col:c})}function ab(a){return k.map(a.match(/(\\.|[^\.])+/g)||[""],function(b){return b.replace(/\\\./g,".")})}function ia(a){if(k.isPlainObject(a)){var b={};k.each(a,function(d,e){e&&(b[d]=ia(e))});return function(d,e,f,g){var h=b[e]||b._;return h!==q?h(d,e,f,g):d}}if(null===a)return function(d){return d};if("function"===typeof a)return function(d,e,f,g){return a(d,e,f,g)};if("string"!==
typeof a||-1===a.indexOf(".")&&-1===a.indexOf("[")&&-1===a.indexOf("("))return function(d,e){return d[a]};var c=function(d,e,f){if(""!==f){var g=ab(f);for(var h=0,l=g.length;h<l;h++){f=g[h].match(ua);var n=g[h].match(oa);if(f){g[h]=g[h].replace(ua,"");""!==g[h]&&(d=d[g[h]]);n=[];g.splice(0,h+1);g=g.join(".");if(Array.isArray(d))for(h=0,l=d.length;h<l;h++)n.push(c(d[h],e,g));d=f[0].substring(1,f[0].length-1);d=""===d?n:n.join(d);break}else if(n){g[h]=g[h].replace(oa,"");d=d[g[h]]();continue}if(null===
d||d[g[h]]===q)return q;d=d[g[h]]}}return d};return function(d,e){return c(d,e,a)}}function da(a){if(k.isPlainObject(a))return da(a._);if(null===a)return function(){};if("function"===typeof a)return function(c,d,e){a(c,"set",d,e)};if("string"!==typeof a||-1===a.indexOf(".")&&-1===a.indexOf("[")&&-1===a.indexOf("("))return function(c,d){c[a]=d};var b=function(c,d,e){e=ab(e);var f=e[e.length-1];for(var g,h,l=0,n=e.length-1;l<n;l++){if("__proto__"===e[l]||"constructor"===e[l])throw Error("Cannot set prototype values");
g=e[l].match(ua);h=e[l].match(oa);if(g){e[l]=e[l].replace(ua,"");c[e[l]]=[];f=e.slice();f.splice(0,l+1);g=f.join(".");if(Array.isArray(d))for(h=0,n=d.length;h<n;h++)f={},b(f,d[h],g),c[e[l]].push(f);else c[e[l]]=d;return}h&&(e[l]=e[l].replace(oa,""),c=c[e[l]](d));if(null===c[e[l]]||c[e[l]]===q)c[e[l]]={};c=c[e[l]]}if(f.match(oa))c[f.replace(oa,"")](d);else c[f.replace(ua,"")]=d};return function(c,d){return b(c,d,a)}}function bb(a){return T(a.aoData,"_aData")}function Ha(a){a.aoData.length=0;a.aiDisplayMaster.length=
0;a.aiDisplay.length=0;a.aIds={}}function Ia(a,b,c){for(var d=-1,e=0,f=a.length;e<f;e++)a[e]==b?d=e:a[e]>b&&a[e]--; -1!=d&&c===q&&a.splice(d,1)}function va(a,b,c,d){var e=a.aoData[b],f,g=function(l,n){for(;l.childNodes.length;)l.removeChild(l.firstChild);l.innerHTML=S(a,b,n,"display")};if("dom"!==c&&(c&&"auto"!==c||"dom"!==e.src)){var h=e.anCells;if(h)if(d!==q)g(h[d],d);else for(c=0,f=h.length;c<f;c++)g(h[c],c)}else e._aData=$a(a,e,d,d===q?q:e._aData).data;e._aSortData=null;e._aFilterData=null;g=
a.aoColumns;if(d!==q)g[d].sType=null;else{c=0;for(f=g.length;c<f;c++)g[c].sType=null;cb(a,e)}}function $a(a,b,c,d){var e=[],f=b.firstChild,g,h=0,l,n=a.aoColumns,m=a._rowReadObject;d=d!==q?d:m?{}:[];var p=function(x,r){if("string"===typeof x){var A=x.indexOf("@");-1!==A&&(A=x.substring(A+1),da(x)(d,r.getAttribute(A)))}},t=function(x){if(c===q||c===h)g=n[h],l=x.innerHTML.trim(),g&&g._bAttrSrc?(da(g.mData._)(d,l),p(g.mData.sort,x),p(g.mData.type,x),p(g.mData.filter,x)):m?(g._setter||(g._setter=da(g.mData)),
g._setter(d,l)):d[h]=l;h++};if(f)for(;f;){var v=f.nodeName.toUpperCase();if("TD"==v||"TH"==v)t(f),e.push(f);f=f.nextSibling}else for(e=b.anCells,f=0,v=e.length;f<v;f++)t(e[f]);(b=b.firstChild?b:b.nTr)&&(b=b.getAttribute("id"))&&da(a.rowId)(d,b);return{data:d,cells:e}}function Za(a,b,c,d){var e=a.aoData[b],f=e._aData,g=[],h,l;if(null===e.nTr){var n=c||z.createElement("tr");e.nTr=n;e.anCells=g;n._DT_RowIndex=b;cb(a,e);var m=0;for(h=a.aoColumns.length;m<h;m++){var p=a.aoColumns[m];e=(l=c?!1:!0)?z.createElement(p.sCellType):
d[m];e._DT_CellIndex={row:b,column:m};g.push(e);if(l||!(!p.mRender&&p.mData===m||k.isPlainObject(p.mData)&&p.mData._===m+".display"))e.innerHTML=S(a,b,m,"display");p.sClass&&(e.className+=" "+p.sClass);p.bVisible&&!c?n.appendChild(e):!p.bVisible&&c&&e.parentNode.removeChild(e);p.fnCreatedCell&&p.fnCreatedCell.call(a.oInstance,e,S(a,b,m),f,b,m)}H(a,"aoRowCreatedCallback",null,[n,f,b,g])}}function cb(a,b){var c=b.nTr,d=b._aData;if(c){if(a=a.rowIdFn(d))c.id=a;d.DT_RowClass&&(a=d.DT_RowClass.split(" "),
b.__rowc=b.__rowc?Ja(b.__rowc.concat(a)):a,k(c).removeClass(b.__rowc.join(" ")).addClass(d.DT_RowClass));d.DT_RowAttr&&k(c).attr(d.DT_RowAttr);d.DT_RowData&&k(c).data(d.DT_RowData)}}function Eb(a){var b,c,d=a.nTHead,e=a.nTFoot,f=0===k("th, td",d).length,g=a.oClasses,h=a.aoColumns;f&&(c=k("<tr/>").appendTo(d));var l=0;for(b=h.length;l<b;l++){var n=h[l];var m=k(n.nTh).addClass(n.sClass);f&&m.appendTo(c);a.oFeatures.bSort&&(m.addClass(n.sSortingClass),!1!==n.bSortable&&(m.attr("tabindex",a.iTabIndex).attr("aria-controls",
a.sTableId),db(a,n.nTh,l)));n.sTitle!=m[0].innerHTML&&m.html(n.sTitle);eb(a,"header")(a,m,n,g)}f&&wa(a.aoHeader,d);k(d).children("tr").attr("role","row");k(d).children("tr").children("th, td").addClass(g.sHeaderTH);k(e).children("tr").children("th, td").addClass(g.sFooterTH);if(null!==e)for(a=a.aoFooter[0],l=0,b=a.length;l<b;l++)n=h[l],n.nTf=a[l].cell,n.sClass&&k(n.nTf).addClass(n.sClass)}function xa(a,b,c){var d,e,f=[],g=[],h=a.aoColumns.length;if(b){c===q&&(c=!1);var l=0;for(d=b.length;l<d;l++){f[l]=
b[l].slice();f[l].nTr=b[l].nTr;for(e=h-1;0<=e;e--)a.aoColumns[e].bVisible||c||f[l].splice(e,1);g.push([])}l=0;for(d=f.length;l<d;l++){if(a=f[l].nTr)for(;e=a.firstChild;)a.removeChild(e);e=0;for(b=f[l].length;e<b;e++){var n=h=1;if(g[l][e]===q){a.appendChild(f[l][e].cell);for(g[l][e]=1;f[l+h]!==q&&f[l][e].cell==f[l+h][e].cell;)g[l+h][e]=1,h++;for(;f[l][e+n]!==q&&f[l][e].cell==f[l][e+n].cell;){for(c=0;c<h;c++)g[l+c][e+n]=1;n++}k(f[l][e].cell).attr("rowspan",h).attr("colspan",n)}}}}}function fa(a){var b=
H(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==k.inArray(!1,b))U(a,!1);else{b=[];var c=0,d=a.asStripeClasses,e=d.length,f=a.oLanguage,g=a.iInitDisplayStart,h="ssp"==P(a),l=a.aiDisplay;a.bDrawing=!0;g!==q&&-1!==g&&(a._iDisplayStart=h?g:g>=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);g=a._iDisplayStart;var n=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,U(a,!1);else if(!h)a.iDraw++;else if(!a.bDestroying&&!Fb(a))return;if(0!==l.length)for(f=h?a.aoData.length:n,h=h?0:g;h<f;h++){var m=
l[h],p=a.aoData[m];null===p.nTr&&Za(a,m);var t=p.nTr;if(0!==e){var v=d[c%e];p._sRowStripe!=v&&(k(t).removeClass(p._sRowStripe).addClass(v),p._sRowStripe=v)}H(a,"aoRowCallback",null,[t,p._aData,c,h,m]);b.push(t);c++}else c=f.sZeroRecords,1==a.iDraw&&"ajax"==P(a)?c=f.sLoadingRecords:f.sEmptyTable&&0===a.fnRecordsTotal()&&(c=f.sEmptyTable),b[0]=k("<tr/>",{"class":e?d[0]:""}).append(k("<td />",{valign:"top",colSpan:na(a),"class":a.oClasses.sRowEmpty}).html(c))[0];H(a,"aoHeaderCallback","header",[k(a.nTHead).children("tr")[0],
bb(a),g,n,l]);H(a,"aoFooterCallback","footer",[k(a.nTFoot).children("tr")[0],bb(a),g,n,l]);d=k(a.nTBody);d.children().detach();d.append(k(b));H(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function ja(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&Gb(a);d?ya(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;fa(a);a._drawHold=!1}function Hb(a){var b=a.oClasses,c=k(a.nTable);c=k("<div/>").insertBefore(c);var d=a.oFeatures,
e=k("<div/>",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(""),g,h,l,n,m,p,t=0;t<f.length;t++){g=null;h=f[t];if("<"==h){l=k("<div/>")[0];n=f[t+1];if("'"==n||'"'==n){m="";for(p=2;f[t+p]!=n;)m+=f[t+p],p++;"H"==m?m=b.sJUIHeader:"F"==m&&(m=b.sJUIFooter);-1!=m.indexOf(".")?(n=m.split("."),l.id=n[0].substr(1,n[0].length-1),l.className=n[1]):"#"==m.charAt(0)?l.id=m.substr(1,
m.length-1):l.className=m;t+=p}e.append(l);e=k(l)}else if(">"==h)e=e.parent();else if("l"==h&&d.bPaginate&&d.bLengthChange)g=Ib(a);else if("f"==h&&d.bFilter)g=Jb(a);else if("r"==h&&d.bProcessing)g=Kb(a);else if("t"==h)g=Lb(a);else if("i"==h&&d.bInfo)g=Mb(a);else if("p"==h&&d.bPaginate)g=Nb(a);else if(0!==u.ext.feature.length)for(l=u.ext.feature,p=0,n=l.length;p<n;p++)if(h==l[p].cFeature){g=l[p].fnInit(a);break}g&&(l=a.aanFeatures,l[h]||(l[h]=[]),l[h].push(g),e.append(g))}c.replaceWith(e);a.nHolding=
null}function wa(a,b){b=k(b).children("tr");var c,d,e;a.splice(0,a.length);var f=0;for(e=b.length;f<e;f++)a.push([]);f=0;for(e=b.length;f<e;f++){var g=b[f];for(c=g.firstChild;c;){if("TD"==c.nodeName.toUpperCase()||"TH"==c.nodeName.toUpperCase()){var h=1*c.getAttribute("colspan");var l=1*c.getAttribute("rowspan");h=h&&0!==h&&1!==h?h:1;l=l&&0!==l&&1!==l?l:1;var n=0;for(d=a[f];d[n];)n++;var m=n;var p=1===h?!0:!1;for(d=0;d<h;d++)for(n=0;n<l;n++)a[f+n][m+d]={cell:c,unique:p},a[f+n].nTr=g}c=c.nextSibling}}}
function Ka(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],wa(c,b)));b=0;for(var e=c.length;b<e;b++)for(var f=0,g=c[b].length;f<g;f++)!c[b][f].unique||d[f]&&a.bSortCellsTop||(d[f]=c[b][f].cell);return d}function La(a,b,c){H(a,"aoServerParams","serverParams",[b]);if(b&&Array.isArray(b)){var d={},e=/(.*?)\[\]$/;k.each(b,function(m,p){(m=p.name.match(e))?(m=m[0],d[m]||(d[m]=[]),d[m].push(p.value)):d[p.name]=p.value});b=d}var f=a.ajax,g=a.oInstance,h=function(m){H(a,null,"xhr",[a,m,a.jqXHR]);c(m)};if(k.isPlainObject(f)&&
f.data){var l=f.data;var n="function"===typeof l?l(b,a):l;b="function"===typeof l&&n?n:k.extend(!0,b,n);delete f.data}n={data:b,success:function(m){var p=m.error||m.sError;p&&aa(a,0,p);a.json=m;h(m)},dataType:"json",cache:!1,type:a.sServerMethod,error:function(m,p,t){t=H(a,null,"xhr",[a,null,a.jqXHR]);-1===k.inArray(!0,t)&&("parsererror"==p?aa(a,0,"Invalid JSON response",1):4===m.readyState&&aa(a,0,"Ajax error",7));U(a,!1)}};a.oAjaxData=b;H(a,null,"preXhr",[a,b]);a.fnServerData?a.fnServerData.call(g,
a.sAjaxSource,k.map(b,function(m,p){return{name:p,value:m}}),h,a):a.sAjaxSource||"string"===typeof f?a.jqXHR=k.ajax(k.extend(n,{url:f||a.sAjaxSource})):"function"===typeof f?a.jqXHR=f.call(g,b,h,a):(a.jqXHR=k.ajax(k.extend(n,f)),f.data=l)}function Fb(a){return a.bAjaxDataGet?(a.iDraw++,U(a,!0),La(a,Ob(a),function(b){Pb(a,b)}),!1):!0}function Ob(a){var b=a.aoColumns,c=b.length,d=a.oFeatures,e=a.oPreviousSearch,f=a.aoPreSearchCols,g=[],h=pa(a);var l=a._iDisplayStart;var n=!1!==d.bPaginate?a._iDisplayLength:
-1;var m=function(x,r){g.push({name:x,value:r})};m("sEcho",a.iDraw);m("iColumns",c);m("sColumns",T(b,"sName").join(","));m("iDisplayStart",l);m("iDisplayLength",n);var p={draw:a.iDraw,columns:[],order:[],start:l,length:n,search:{value:e.sSearch,regex:e.bRegex}};for(l=0;l<c;l++){var t=b[l];var v=f[l];n="function"==typeof t.mData?"function":t.mData;p.columns.push({data:n,name:t.sName,searchable:t.bSearchable,orderable:t.bSortable,search:{value:v.sSearch,regex:v.bRegex}});m("mDataProp_"+l,n);d.bFilter&&
(m("sSearch_"+l,v.sSearch),m("bRegex_"+l,v.bRegex),m("bSearchable_"+l,t.bSearchable));d.bSort&&m("bSortable_"+l,t.bSortable)}d.bFilter&&(m("sSearch",e.sSearch),m("bRegex",e.bRegex));d.bSort&&(k.each(h,function(x,r){p.order.push({column:r.col,dir:r.dir});m("iSortCol_"+x,r.col);m("sSortDir_"+x,r.dir)}),m("iSortingCols",h.length));b=u.ext.legacy.ajax;return null===b?a.sAjaxSource?g:p:b?g:p}function Pb(a,b){var c=function(g,h){return b[g]!==q?b[g]:b[h]},d=Ma(a,b),e=c("sEcho","draw"),f=c("iTotalRecords",
"recordsTotal");c=c("iTotalDisplayRecords","recordsFiltered");if(e!==q){if(1*e<a.iDraw)return;a.iDraw=1*e}Ha(a);a._iRecordsTotal=parseInt(f,10);a._iRecordsDisplay=parseInt(c,10);e=0;for(f=d.length;e<f;e++)ea(a,d[e]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;fa(a);a._bInitComplete||Na(a,b);a.bAjaxDataGet=!0;U(a,!1)}function Ma(a,b){a=k.isPlainObject(a.ajax)&&a.ajax.dataSrc!==q?a.ajax.dataSrc:a.sAjaxDataProp;return"data"===a?b.aaData||b[a]:""!==a?ia(a)(b):b}function Jb(a){var b=a.oClasses,
c=a.sTableId,d=a.oLanguage,e=a.oPreviousSearch,f=a.aanFeatures,g='<input type="search" class="'+b.sFilterInput+'"/>',h=d.sSearch;h=h.match(/_INPUT_/)?h.replace("_INPUT_",g):h+g;b=k("<div/>",{id:f.f?null:c+"_filter","class":b.sFilter}).append(k("<label/>").append(h));var l=function(){var m=this.value?this.value:"";m!=e.sSearch&&(ya(a,{sSearch:m,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,fa(a))};f=null!==a.searchDelay?a.searchDelay:"ssp"===P(a)?400:0;var n=
k("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT",f?fb(l,f):l).on("mouseup",function(m){setTimeout(function(){l.call(n[0])},10)}).on("keypress.DT",function(m){if(13==m.keyCode)return!1}).attr("aria-controls",c);k(a.nTable).on("search.dt.DT",function(m,p){if(a===p)try{n[0]!==z.activeElement&&n.val(e.sSearch)}catch(t){}});return b[0]}function ya(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(h){d.sSearch=h.sSearch;d.bRegex=
h.bRegex;d.bSmart=h.bSmart;d.bCaseInsensitive=h.bCaseInsensitive},g=function(h){return h.bEscapeRegex!==q?!h.bEscapeRegex:h.bRegex};Ya(a);if("ssp"!=P(a)){Qb(a,b.sSearch,c,g(b),b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<e.length;b++)Rb(a,e[b].sSearch,b,g(e[b]),e[b].bSmart,e[b].bCaseInsensitive);Sb(a)}else f(b);a.bFiltered=!0;H(a,null,"search",[a])}function Sb(a){for(var b=u.ext.search,c=a.aiDisplay,d,e,f=0,g=b.length;f<g;f++){for(var h=[],l=0,n=c.length;l<n;l++)e=c[l],d=a.aoData[e],b[f](a,d._aFilterData,
e,d._aData,l)&&h.push(e);c.length=0;k.merge(c,h)}}function Rb(a,b,c,d,e,f){if(""!==b){var g=[],h=a.aiDisplay;d=gb(b,d,e,f);for(e=0;e<h.length;e++)b=a.aoData[h[e]]._aFilterData[c],d.test(b)&&g.push(h[e]);a.aiDisplay=g}}function Qb(a,b,c,d,e,f){e=gb(b,d,e,f);var g=a.oPreviousSearch.sSearch,h=a.aiDisplayMaster;f=[];0!==u.ext.search.length&&(c=!0);var l=Tb(a);if(0>=b.length)a.aiDisplay=h.slice();else{if(l||c||d||g.length>b.length||0!==b.indexOf(g)||a.bSorted)a.aiDisplay=h.slice();b=a.aiDisplay;for(c=
0;c<b.length;c++)e.test(a.aoData[b[c]]._sFilterRow)&&f.push(b[c]);a.aiDisplay=f}}function gb(a,b,c,d){a=b?a:hb(a);c&&(a="^(?=.*?"+k.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(e){if('"'===e.charAt(0)){var f=e.match(/^"(.*)"$/);e=f?f[1]:e}return e.replace('"',"")}).join(")(?=.*?")+").*$");return new RegExp(a,d?"i":"")}function Tb(a){var b=a.aoColumns,c,d,e=u.ext.type.search;var f=!1;var g=0;for(c=a.aoData.length;g<c;g++){var h=a.aoData[g];if(!h._aFilterData){var l=[];var n=0;for(d=b.length;n<d;n++){f=
b[n];if(f.bSearchable){var m=S(a,g,n,"filter");e[f.sType]&&(m=e[f.sType](m));null===m&&(m="");"string"!==typeof m&&m.toString&&(m=m.toString())}else m="";m.indexOf&&-1!==m.indexOf("&")&&(Oa.innerHTML=m,m=rc?Oa.textContent:Oa.innerText);m.replace&&(m=m.replace(/[\r\n\u2028]/g,""));l.push(m)}h._aFilterData=l;h._sFilterRow=l.join("  ");f=!0}}return f}function Ub(a){return{search:a.sSearch,smart:a.bSmart,regex:a.bRegex,caseInsensitive:a.bCaseInsensitive}}function Vb(a){return{sSearch:a.search,bSmart:a.smart,
bRegex:a.regex,bCaseInsensitive:a.caseInsensitive}}function Mb(a){var b=a.sTableId,c=a.aanFeatures.i,d=k("<div/>",{"class":a.oClasses.sInfo,id:c?null:b+"_info"});c||(a.aoDrawCallback.push({fn:Wb,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),k(a.nTable).attr("aria-describedby",b+"_info"));return d[0]}function Wb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),h=g?c.sInfo:c.sInfoEmpty;
g!==f&&(h+=" "+c.sInfoFiltered);h+=c.sInfoPostFix;h=Xb(a,h);c=c.fnInfoCallback;null!==c&&(h=c.call(a.oInstance,a,d,e,f,g,h));k(b).html(h)}}function Xb(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/
e)))}function za(a){var b=a.iInitDisplayStart,c=a.aoColumns;var d=a.oFeatures;var e=a.bDeferLoading;if(a.bInitialised){Hb(a);Eb(a);xa(a,a.aoHeader);xa(a,a.aoFooter);U(a,!0);d.bAutoWidth&&Xa(a);var f=0;for(d=c.length;f<d;f++){var g=c[f];g.sWidth&&(g.nTh.style.width=K(g.sWidth))}H(a,null,"preInit",[a]);ja(a);c=P(a);if("ssp"!=c||e)"ajax"==c?La(a,[],function(h){var l=Ma(a,h);for(f=0;f<l.length;f++)ea(a,l[f]);a.iInitDisplayStart=b;ja(a);U(a,!1);Na(a,h)},a):(U(a,!1),Na(a))}else setTimeout(function(){za(a)},
200)}function Na(a,b){a._bInitComplete=!0;(b||a.oInit.aaData)&&ra(a);H(a,null,"plugin-init",[a,b]);H(a,"aoInitComplete","init",[a,b])}function ib(a,b){b=parseInt(b,10);a._iDisplayLength=b;jb(a);H(a,null,"length",[a,b])}function Ib(a){var b=a.oClasses,c=a.sTableId,d=a.aLengthMenu,e=Array.isArray(d[0]),f=e?d[0]:d;d=e?d[1]:d;e=k("<select/>",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect});for(var g=0,h=f.length;g<h;g++)e[0][g]=new Option("number"===typeof d[g]?a.fnFormatNumber(d[g]):d[g],
f[g]);var l=k("<div><label/></div>").addClass(b.sLength);a.aanFeatures.l||(l[0].id=c+"_length");l.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));k("select",l).val(a._iDisplayLength).on("change.DT",function(n){ib(a,k(this).val());fa(a)});k(a.nTable).on("length.dt.DT",function(n,m,p){a===m&&k("select",l).val(p)});return l[0]}function Nb(a){var b=a.sPaginationType,c=u.ext.pager[b],d="function"===typeof c,e=function(g){fa(g)};b=k("<div/>").addClass(a.oClasses.sPaging+b)[0];
var f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(g){if(d){var h=g._iDisplayStart,l=g._iDisplayLength,n=g.fnRecordsDisplay(),m=-1===l;h=m?0:Math.ceil(h/l);l=m?1:Math.ceil(n/l);n=c(h,l);var p;m=0;for(p=f.p.length;m<p;m++)eb(g,"pageButton")(g,f.p[m],m,n,h,l)}else c.fnUpdate(g,e)},sName:"pagination"}));return b}function kb(a,b,c){var d=a._iDisplayStart,e=a._iDisplayLength,f=a.fnRecordsDisplay();0===f||-1===e?d=0:"number"===typeof b?(d=b*e,d>f&&
(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e<f&&(d+=e):"last"==b?d=Math.floor((f-1)/e)*e:aa(a,0,"Unknown paging action: "+b,5);b=a._iDisplayStart!==d;a._iDisplayStart=d;b&&(H(a,null,"page",[a]),c&&fa(a));return b}function Kb(a){return k("<div/>",{id:a.aanFeatures.r?null:a.sTableId+"_processing","class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function U(a,b){a.oFeatures.bProcessing&&k(a.aanFeatures.r).css("display",b?"block":"none");
H(a,null,"processing",[a,b])}function Lb(a){var b=k(a.nTable);b.attr("role","grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),h=g.length?g[0]._captionSide:null,l=k(b[0].cloneNode(!1)),n=k(b[0].cloneNode(!1)),m=b.children("tfoot");m.length||(m=null);l=k("<div/>",{"class":f.sScrollWrapper}).append(k("<div/>",{"class":f.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:d?d?K(d):null:"100%"}).append(k("<div/>",
{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||"100%"}).append(l.removeAttr("id").css("margin-left",0).append("top"===h?g:null).append(b.children("thead"))))).append(k("<div/>",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:d?K(d):null}).append(b));m&&l.append(k("<div/>",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?d?K(d):null:"100%"}).append(k("<div/>",{"class":f.sScrollFootInner}).append(n.removeAttr("id").css("margin-left",
0).append("bottom"===h?g:null).append(b.children("tfoot")))));b=l.children();var p=b[0];f=b[1];var t=m?b[2]:null;if(d)k(f).on("scroll.DT",function(v){v=this.scrollLeft;p.scrollLeft=v;m&&(t.scrollLeft=v)});k(f).css("max-height",e);c.bCollapse||k(f).css("height",e);a.nScrollHead=p;a.nScrollBody=f;a.nScrollFoot=t;a.aoDrawCallback.push({fn:Ea,sName:"scrolling"});return l[0]}function Ea(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY;b=b.iBarWidth;var f=k(a.nScrollHead),g=f[0].style,h=f.children("div"),l=
h[0].style,n=h.children("table");h=a.nScrollBody;var m=k(h),p=h.style,t=k(a.nScrollFoot).children("div"),v=t.children("table"),x=k(a.nTHead),r=k(a.nTable),A=r[0],E=A.style,I=a.nTFoot?k(a.nTFoot):null,W=a.oBrowser,M=W.bScrollOversize,C=T(a.aoColumns,"nTh"),B=[],ba=[],X=[],lb=[],Aa,Yb=function(F){F=F.style;F.paddingTop="0";F.paddingBottom="0";F.borderTopWidth="0";F.borderBottomWidth="0";F.height=0};var ha=h.scrollHeight>h.clientHeight;if(a.scrollBarVis!==ha&&a.scrollBarVis!==q)a.scrollBarVis=ha,ra(a);
else{a.scrollBarVis=ha;r.children("thead, tfoot").remove();if(I){var ka=I.clone().prependTo(r);var la=I.find("tr");ka=ka.find("tr")}var mb=x.clone().prependTo(r);x=x.find("tr");ha=mb.find("tr");mb.find("th, td").removeAttr("tabindex");c||(p.width="100%",f[0].style.width="100%");k.each(Ka(a,mb),function(F,Y){Aa=sa(a,F);Y.style.width=a.aoColumns[Aa].sWidth});I&&Z(function(F){F.style.width=""},ka);f=r.outerWidth();""===c?(E.width="100%",M&&(r.find("tbody").height()>h.offsetHeight||"scroll"==m.css("overflow-y"))&&
(E.width=K(r.outerWidth()-b)),f=r.outerWidth()):""!==d&&(E.width=K(d),f=r.outerWidth());Z(Yb,ha);Z(function(F){X.push(F.innerHTML);B.push(K(k(F).css("width")))},ha);Z(function(F,Y){-1!==k.inArray(F,C)&&(F.style.width=B[Y])},x);k(ha).height(0);I&&(Z(Yb,ka),Z(function(F){lb.push(F.innerHTML);ba.push(K(k(F).css("width")))},ka),Z(function(F,Y){F.style.width=ba[Y]},la),k(ka).height(0));Z(function(F,Y){F.innerHTML='<div class="dataTables_sizing">'+X[Y]+"</div>";F.childNodes[0].style.height="0";F.childNodes[0].style.overflow=
"hidden";F.style.width=B[Y]},ha);I&&Z(function(F,Y){F.innerHTML='<div class="dataTables_sizing">'+lb[Y]+"</div>";F.childNodes[0].style.height="0";F.childNodes[0].style.overflow="hidden";F.style.width=ba[Y]},ka);r.outerWidth()<f?(la=h.scrollHeight>h.offsetHeight||"scroll"==m.css("overflow-y")?f+b:f,M&&(h.scrollHeight>h.offsetHeight||"scroll"==m.css("overflow-y"))&&(E.width=K(la-b)),""!==c&&""===d||aa(a,1,"Possible column misalignment",6)):la="100%";p.width=K(la);g.width=K(la);I&&(a.nScrollFoot.style.width=
K(la));!e&&M&&(p.height=K(A.offsetHeight+b));c=r.outerWidth();n[0].style.width=K(c);l.width=K(c);d=r.height()>h.clientHeight||"scroll"==m.css("overflow-y");e="padding"+(W.bScrollbarLeft?"Left":"Right");l[e]=d?b+"px":"0px";I&&(v[0].style.width=K(c),t[0].style.width=K(c),t[0].style[e]=d?b+"px":"0px");r.children("colgroup").insertBefore(r.children("thead"));m.trigger("scroll");!a.bSorted&&!a.bFiltered||a._drawHold||(h.scrollTop=0)}}function Z(a,b,c){for(var d=0,e=0,f=b.length,g,h;e<f;){g=b[e].firstChild;
for(h=c?c[e].firstChild:null;g;)1===g.nodeType&&(c?a(g,h,d):a(g,d),d++),g=g.nextSibling,h=c?h.nextSibling:null;e++}}function Xa(a){var b=a.nTable,c=a.aoColumns,d=a.oScroll,e=d.sY,f=d.sX,g=d.sXInner,h=c.length,l=Fa(a,"bVisible"),n=k("th",a.nTHead),m=b.getAttribute("width"),p=b.parentNode,t=!1,v,x=a.oBrowser;d=x.bScrollOversize;(v=b.style.width)&&-1!==v.indexOf("%")&&(m=v);for(v=0;v<l.length;v++){var r=c[l[v]];null!==r.sWidth&&(r.sWidth=Zb(r.sWidthOrig,p),t=!0)}if(d||!t&&!f&&!e&&h==na(a)&&h==n.length)for(v=
0;v<h;v++)l=sa(a,v),null!==l&&(c[l].sWidth=K(n.eq(v).width()));else{h=k(b).clone().css("visibility","hidden").removeAttr("id");h.find("tbody tr").remove();var A=k("<tr/>").appendTo(h.find("tbody"));h.find("thead, tfoot").remove();h.append(k(a.nTHead).clone()).append(k(a.nTFoot).clone());h.find("tfoot th, tfoot td").css("width","");n=Ka(a,h.find("thead")[0]);for(v=0;v<l.length;v++)r=c[l[v]],n[v].style.width=null!==r.sWidthOrig&&""!==r.sWidthOrig?K(r.sWidthOrig):"",r.sWidthOrig&&f&&k(n[v]).append(k("<div/>").css({width:r.sWidthOrig,
margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(v=0;v<l.length;v++)t=l[v],r=c[t],k($b(a,t)).clone(!1).append(r.sContentPadding).appendTo(A);k("[name]",h).removeAttr("name");r=k("<div/>").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(h).appendTo(p);f&&g?h.width(g):f?(h.css("width","auto"),h.removeAttr("width"),h.width()<p.clientWidth&&m&&h.width(p.clientWidth)):e?h.width(p.clientWidth):m&&h.width(m);for(v=e=0;v<l.length;v++)p=k(n[v]),g=p.outerWidth()-
p.width(),p=x.bBounding?Math.ceil(n[v].getBoundingClientRect().width):p.outerWidth(),e+=p,c[l[v]].sWidth=K(p-g);b.style.width=K(e);r.remove()}m&&(b.style.width=K(m));!m&&!f||a._reszEvt||(b=function(){k(y).on("resize.DT-"+a.sInstance,fb(function(){ra(a)}))},d?setTimeout(b,1E3):b(),a._reszEvt=!0)}function Zb(a,b){if(!a)return 0;a=k("<div/>").css("width",K(a)).appendTo(b||z.body);b=a[0].offsetWidth;a.remove();return b}function $b(a,b){var c=ac(a,b);if(0>c)return null;var d=a.aoData[c];return d.nTr?d.anCells[b]:
k("<td/>").html(S(a,c,b,"display"))[0]}function ac(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;f<g;f++)c=S(a,f,b,"display")+"",c=c.replace(sc,""),c=c.replace(/&nbsp;/g," "),c.length>d&&(d=c.length,e=f);return e}function K(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function pa(a){var b=[],c=a.aoColumns;var d=a.aaSortingFixed;var e=k.isPlainObject(d);var f=[];var g=function(m){m.length&&!Array.isArray(m[0])?f.push(m):k.merge(f,m)};Array.isArray(d)&&g(d);
e&&d.pre&&g(d.pre);g(a.aaSorting);e&&d.post&&g(d.post);for(a=0;a<f.length;a++){var h=f[a][0];g=c[h].aDataSort;d=0;for(e=g.length;d<e;d++){var l=g[d];var n=c[l].sType||"string";f[a]._idx===q&&(f[a]._idx=k.inArray(f[a][1],c[l].asSorting));b.push({src:h,col:l,dir:f[a][1],index:f[a]._idx,type:n,formatter:u.ext.type.order[n+"-pre"]})}}return b}function Gb(a){var b,c=[],d=u.ext.type.order,e=a.aoData,f=0,g=a.aiDisplayMaster;Ya(a);var h=pa(a);var l=0;for(b=h.length;l<b;l++){var n=h[l];n.formatter&&f++;bc(a,
n.col)}if("ssp"!=P(a)&&0!==h.length){l=0;for(b=g.length;l<b;l++)c[g[l]]=l;f===h.length?g.sort(function(m,p){var t,v=h.length,x=e[m]._aSortData,r=e[p]._aSortData;for(t=0;t<v;t++){var A=h[t];var E=x[A.col];var I=r[A.col];E=E<I?-1:E>I?1:0;if(0!==E)return"asc"===A.dir?E:-E}E=c[m];I=c[p];return E<I?-1:E>I?1:0}):g.sort(function(m,p){var t,v=h.length,x=e[m]._aSortData,r=e[p]._aSortData;for(t=0;t<v;t++){var A=h[t];var E=x[A.col];var I=r[A.col];A=d[A.type+"-"+A.dir]||d["string-"+A.dir];E=A(E,I);if(0!==E)return E}E=
c[m];I=c[p];return E<I?-1:E>I?1:0})}a.bSorted=!0}function cc(a){var b=a.aoColumns,c=pa(a);a=a.oLanguage.oAria;for(var d=0,e=b.length;d<e;d++){var f=b[d];var g=f.asSorting;var h=f.sTitle.replace(/<.*?>/g,"");var l=f.nTh;l.removeAttribute("aria-sort");f.bSortable&&(0<c.length&&c[0].col==d?(l.setAttribute("aria-sort","asc"==c[0].dir?"ascending":"descending"),f=g[c[0].index+1]||g[0]):f=g[0],h+="asc"===f?a.sSortAscending:a.sSortDescending);l.setAttribute("aria-label",h)}}function nb(a,b,c,d){var e=a.aaSorting,
f=a.aoColumns[b].asSorting,g=function(h,l){var n=h._idx;n===q&&(n=k.inArray(h[1],f));return n+1<f.length?n+1:l?null:0};"number"===typeof e[0]&&(e=a.aaSorting=[e]);c&&a.oFeatures.bSortMulti?(c=k.inArray(b,T(e,"0")),-1!==c?(b=g(e[c],!0),null===b&&1===e.length&&(b=0),null===b?e.splice(c,1):(e[c][1]=f[b],e[c]._idx=b)):(e.push([b,f[0],0]),e[e.length-1]._idx=0)):e.length&&e[0][0]==b?(b=g(e[0]),e.length=1,e[0][1]=f[b],e[0]._idx=b):(e.length=0,e.push([b,f[0]]),e[0]._idx=0);ja(a);"function"==typeof d&&d(a)}
function db(a,b,c,d){var e=a.aoColumns[c];ob(b,{},function(f){!1!==e.bSortable&&(a.oFeatures.bProcessing?(U(a,!0),setTimeout(function(){nb(a,c,f.shiftKey,d);"ssp"!==P(a)&&U(a,!1)},0)):nb(a,c,f.shiftKey,d))})}function Pa(a){var b=a.aLastSort,c=a.oClasses.sSortColumn,d=pa(a),e=a.oFeatures,f;if(e.bSort&&e.bSortClasses){e=0;for(f=b.length;e<f;e++){var g=b[e].src;k(T(a.aoData,"anCells",g)).removeClass(c+(2>e?e+1:3))}e=0;for(f=d.length;e<f;e++)g=d[e].src,k(T(a.aoData,"anCells",g)).addClass(c+(2>e?e+1:3))}a.aLastSort=
d}function bc(a,b){var c=a.aoColumns[b],d=u.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,ta(a,b)));for(var f,g=u.ext.type.order[c.sType+"-pre"],h=0,l=a.aoData.length;h<l;h++)if(c=a.aoData[h],c._aSortData||(c._aSortData=[]),!c._aSortData[b]||d)f=d?e[h]:S(a,h,b,"sort"),c._aSortData[b]=g?g(f):f}function Qa(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b={time:+new Date,start:a._iDisplayStart,length:a._iDisplayLength,order:k.extend(!0,[],a.aaSorting),search:Ub(a.oPreviousSearch),columns:k.map(a.aoColumns,
function(c,d){return{visible:c.bVisible,search:Ub(a.aoPreSearchCols[d])}})};H(a,"aoStateSaveParams","stateSaveParams",[a,b]);a.oSavedState=b;a.fnStateSaveCallback.call(a.oInstance,a,b)}}function dc(a,b,c){var d,e,f=a.aoColumns;b=function(h){if(h&&h.time){var l=H(a,"aoStateLoadParams","stateLoadParams",[a,h]);if(-1===k.inArray(!1,l)&&(l=a.iStateDuration,!(0<l&&h.time<+new Date-1E3*l||h.columns&&f.length!==h.columns.length))){a.oLoadedState=k.extend(!0,{},h);h.start!==q&&(a._iDisplayStart=h.start,a.iInitDisplayStart=
h.start);h.length!==q&&(a._iDisplayLength=h.length);h.order!==q&&(a.aaSorting=[],k.each(h.order,function(n,m){a.aaSorting.push(m[0]>=f.length?[0,m[1]]:m)}));h.search!==q&&k.extend(a.oPreviousSearch,Vb(h.search));if(h.columns)for(d=0,e=h.columns.length;d<e;d++)l=h.columns[d],l.visible!==q&&(f[d].bVisible=l.visible),l.search!==q&&k.extend(a.aoPreSearchCols[d],Vb(l.search));H(a,"aoStateLoaded","stateLoaded",[a,h])}}c()};if(a.oFeatures.bStateSave){var g=a.fnStateLoadCallback.call(a.oInstance,a,b);g!==
q&&b(g)}else c()}function Ra(a){var b=u.settings;a=k.inArray(a,T(b,"nTable"));return-1!==a?b[a]:null}function aa(a,b,c,d){c="DataTables warning: "+(a?"table id="+a.sTableId+" - ":"")+c;d&&(c+=". For more information about this error, please see http://datatables.net/tn/"+d);if(b)y.console&&console.log&&console.log(c);else if(b=u.ext,b=b.sErrMode||b.errMode,a&&H(a,null,"error",[a,d,c]),"alert"==b)alert(c);else{if("throw"==b)throw Error(c);"function"==typeof b&&b(a,d,c)}}function V(a,b,c,d){Array.isArray(c)?
k.each(c,function(e,f){Array.isArray(f)?V(a,b,f[0],f[1]):V(a,b,f)}):(d===q&&(d=c),b[c]!==q&&(a[d]=b[c]))}function pb(a,b,c){var d;for(d in b)if(b.hasOwnProperty(d)){var e=b[d];k.isPlainObject(e)?(k.isPlainObject(a[d])||(a[d]={}),k.extend(!0,a[d],e)):c&&"data"!==d&&"aaData"!==d&&Array.isArray(e)?a[d]=e.slice():a[d]=e}return a}function ob(a,b,c){k(a).on("click.DT",b,function(d){k(a).trigger("blur");c(d)}).on("keypress.DT",b,function(d){13===d.which&&(d.preventDefault(),c(d))}).on("selectstart.DT",function(){return!1})}
function Q(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function H(a,b,c,d){var e=[];b&&(e=k.map(a[b].slice().reverse(),function(f,g){return f.fn.apply(a.oInstance,d)}));null!==c&&(b=k.Event(c+".dt"),k(a.nTable).trigger(b,d),e.push(b.result));return e}function jb(a){var b=a._iDisplayStart,c=a.fnDisplayEnd(),d=a._iDisplayLength;b>=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function eb(a,b){a=a.renderer;var c=u.ext.renderer[b];return k.isPlainObject(a)&&a[b]?c[a[b]]||c._:"string"===typeof a?c[a]||
c._:c._}function P(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function Ba(a,b){var c=ec.numbers_length,d=Math.floor(c/2);b<=c?a=qa(0,b):a<=d?(a=qa(0,c-2),a.push("ellipsis"),a.push(b-1)):(a>=b-1-d?a=qa(b-(c-2),b):(a=qa(a-d+2,a+d-1),a.push("ellipsis"),a.push(b-1)),a.splice(0,0,"ellipsis"),a.splice(0,0,0));a.DT_el="span";return a}function Va(a){k.each({num:function(b){return Sa(b,a)},"num-fmt":function(b){return Sa(b,a,qb)},"html-num":function(b){return Sa(b,a,Ta)},"html-num-fmt":function(b){return Sa(b,
a,Ta,qb)}},function(b,c){L.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(L.type.search[b+a]=L.type.search.html)})}function fc(a){return function(){var b=[Ra(this[u.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return u.ext.internal[a].apply(this,b)}}var u=function(a){this.$=function(f,g){return this.api(!0).$(f,g)};this._=function(f,g){return this.api(!0).rows(f,g).data()};this.api=function(f){return f?new D(Ra(this[L.iApiIndex])):new D(this)};this.fnAddData=function(f,g){var h=this.api(!0);
f=Array.isArray(f)&&(Array.isArray(f[0])||k.isPlainObject(f[0]))?h.rows.add(f):h.row.add(f);(g===q||g)&&h.draw();return f.flatten().toArray()};this.fnAdjustColumnSizing=function(f){var g=this.api(!0).columns.adjust(),h=g.settings()[0],l=h.oScroll;f===q||f?g.draw(!1):(""!==l.sX||""!==l.sY)&&Ea(h)};this.fnClearTable=function(f){var g=this.api(!0).clear();(f===q||f)&&g.draw()};this.fnClose=function(f){this.api(!0).row(f).child.hide()};this.fnDeleteRow=function(f,g,h){var l=this.api(!0);f=l.rows(f);var n=
f.settings()[0],m=n.aoData[f[0][0]];f.remove();g&&g.call(this,n,m);(h===q||h)&&l.draw();return m};this.fnDestroy=function(f){this.api(!0).destroy(f)};this.fnDraw=function(f){this.api(!0).draw(f)};this.fnFilter=function(f,g,h,l,n,m){n=this.api(!0);null===g||g===q?n.search(f,h,l,m):n.column(g).search(f,h,l,m);n.draw()};this.fnGetData=function(f,g){var h=this.api(!0);if(f!==q){var l=f.nodeName?f.nodeName.toLowerCase():"";return g!==q||"td"==l||"th"==l?h.cell(f,g).data():h.row(f).data()||null}return h.data().toArray()};
this.fnGetNodes=function(f){var g=this.api(!0);return f!==q?g.row(f).node():g.rows().nodes().flatten().toArray()};this.fnGetPosition=function(f){var g=this.api(!0),h=f.nodeName.toUpperCase();return"TR"==h?g.row(f).index():"TD"==h||"TH"==h?(f=g.cell(f).index(),[f.row,f.columnVisible,f.column]):null};this.fnIsOpen=function(f){return this.api(!0).row(f).child.isShown()};this.fnOpen=function(f,g,h){return this.api(!0).row(f).child(g,h).show().child()[0]};this.fnPageChange=function(f,g){f=this.api(!0).page(f);
(g===q||g)&&f.draw(!1)};this.fnSetColumnVis=function(f,g,h){f=this.api(!0).column(f).visible(g);(h===q||h)&&f.columns.adjust().draw()};this.fnSettings=function(){return Ra(this[L.iApiIndex])};this.fnSort=function(f){this.api(!0).order(f).draw()};this.fnSortListener=function(f,g,h){this.api(!0).order.listener(f,g,h)};this.fnUpdate=function(f,g,h,l,n){var m=this.api(!0);h===q||null===h?m.row(g).data(f):m.cell(g,h).data(f);(n===q||n)&&m.columns.adjust();(l===q||l)&&m.draw();return 0};this.fnVersionCheck=
L.fnVersionCheck;var b=this,c=a===q,d=this.length;c&&(a={});this.oApi=this.internal=L.internal;for(var e in u.ext.internal)e&&(this[e]=fc(e));this.each(function(){var f={},g=1<d?pb(f,a,!0):a,h=0,l;f=this.getAttribute("id");var n=!1,m=u.defaults,p=k(this);if("table"!=this.nodeName.toLowerCase())aa(null,0,"Non-table node initialisation ("+this.nodeName+")",2);else{yb(m);zb(m.column);O(m,m,!0);O(m.column,m.column,!0);O(m,k.extend(g,p.data()),!0);var t=u.settings;h=0;for(l=t.length;h<l;h++){var v=t[h];
if(v.nTable==this||v.nTHead&&v.nTHead.parentNode==this||v.nTFoot&&v.nTFoot.parentNode==this){var x=g.bRetrieve!==q?g.bRetrieve:m.bRetrieve;if(c||x)return v.oInstance;if(g.bDestroy!==q?g.bDestroy:m.bDestroy){v.oInstance.fnDestroy();break}else{aa(v,0,"Cannot reinitialise DataTable",3);return}}if(v.sTableId==this.id){t.splice(h,1);break}}if(null===f||""===f)this.id=f="DataTables_Table_"+u.ext._unique++;var r=k.extend(!0,{},u.models.oSettings,{sDestroyWidth:p[0].style.width,sInstance:f,sTableId:f});r.nTable=
this;r.oApi=b.internal;r.oInit=g;t.push(r);r.oInstance=1===b.length?b:p.dataTable();yb(g);ma(g.oLanguage);g.aLengthMenu&&!g.iDisplayLength&&(g.iDisplayLength=Array.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]);g=pb(k.extend(!0,{},m),g);V(r.oFeatures,g,"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" "));V(r,g,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod","aaSorting","aaSortingFixed",
"aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback","fnStateSaveCallback","renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"],["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"]]);V(r.oScroll,g,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]);V(r.oLanguage,g,"fnInfoCallback");Q(r,"aoDrawCallback",g.fnDrawCallback,
"user");Q(r,"aoServerParams",g.fnServerParams,"user");Q(r,"aoStateSaveParams",g.fnStateSaveParams,"user");Q(r,"aoStateLoadParams",g.fnStateLoadParams,"user");Q(r,"aoStateLoaded",g.fnStateLoaded,"user");Q(r,"aoRowCallback",g.fnRowCallback,"user");Q(r,"aoRowCreatedCallback",g.fnCreatedRow,"user");Q(r,"aoHeaderCallback",g.fnHeaderCallback,"user");Q(r,"aoFooterCallback",g.fnFooterCallback,"user");Q(r,"aoInitComplete",g.fnInitComplete,"user");Q(r,"aoPreDrawCallback",g.fnPreDrawCallback,"user");r.rowIdFn=
ia(g.rowId);Ab(r);var A=r.oClasses;k.extend(A,u.ext.classes,g.oClasses);p.addClass(A.sTable);r.iInitDisplayStart===q&&(r.iInitDisplayStart=g.iDisplayStart,r._iDisplayStart=g.iDisplayStart);null!==g.iDeferLoading&&(r.bDeferLoading=!0,f=Array.isArray(g.iDeferLoading),r._iRecordsDisplay=f?g.iDeferLoading[0]:g.iDeferLoading,r._iRecordsTotal=f?g.iDeferLoading[1]:g.iDeferLoading);var E=r.oLanguage;k.extend(!0,E,g.oLanguage);E.sUrl?(k.ajax({dataType:"json",url:E.sUrl,success:function(C){ma(C);O(m.oLanguage,
C);k.extend(!0,E,C);H(r,null,"i18n",[r]);za(r)},error:function(){za(r)}}),n=!0):H(r,null,"i18n",[r]);null===g.asStripeClasses&&(r.asStripeClasses=[A.sStripeOdd,A.sStripeEven]);f=r.asStripeClasses;var I=p.children("tbody").find("tr").eq(0);-1!==k.inArray(!0,k.map(f,function(C,B){return I.hasClass(C)}))&&(k("tbody tr",this).removeClass(f.join(" ")),r.asDestroyStripes=f.slice());f=[];t=this.getElementsByTagName("thead");0!==t.length&&(wa(r.aoHeader,t[0]),f=Ka(r));if(null===g.aoColumns)for(t=[],h=0,l=
f.length;h<l;h++)t.push(null);else t=g.aoColumns;h=0;for(l=t.length;h<l;h++)Wa(r,f?f[h]:null);Cb(r,g.aoColumnDefs,t,function(C,B){Da(r,C,B)});if(I.length){var W=function(C,B){return null!==C.getAttribute("data-"+B)?B:null};k(I[0]).children("th, td").each(function(C,B){var ba=r.aoColumns[C];if(ba.mData===C){var X=W(B,"sort")||W(B,"order");B=W(B,"filter")||W(B,"search");if(null!==X||null!==B)ba.mData={_:C+".display",sort:null!==X?C+".@data-"+X:q,type:null!==X?C+".@data-"+X:q,filter:null!==B?C+".@data-"+
B:q},Da(r,C)}})}var M=r.oFeatures;f=function(){if(g.aaSorting===q){var C=r.aaSorting;h=0;for(l=C.length;h<l;h++)C[h][1]=r.aoColumns[h].asSorting[0]}Pa(r);M.bSort&&Q(r,"aoDrawCallback",function(){if(r.bSorted){var ba=pa(r),X={};k.each(ba,function(lb,Aa){X[Aa.src]=Aa.dir});H(r,null,"order",[r,ba,X]);cc(r)}});Q(r,"aoDrawCallback",function(){(r.bSorted||"ssp"===P(r)||M.bDeferRender)&&Pa(r)},"sc");C=p.children("caption").each(function(){this._captionSide=k(this).css("caption-side")});var B=p.children("thead");
0===B.length&&(B=k("<thead/>").appendTo(p));r.nTHead=B[0];B=p.children("tbody");0===B.length&&(B=k("<tbody/>").appendTo(p));r.nTBody=B[0];B=p.children("tfoot");0===B.length&&0<C.length&&(""!==r.oScroll.sX||""!==r.oScroll.sY)&&(B=k("<tfoot/>").appendTo(p));0===B.length||0===B.children().length?p.addClass(A.sNoFooter):0<B.length&&(r.nTFoot=B[0],wa(r.aoFooter,r.nTFoot));if(g.aaData)for(h=0;h<g.aaData.length;h++)ea(r,g.aaData[h]);else(r.bDeferLoading||"dom"==P(r))&&Ga(r,k(r.nTBody).children("tr"));r.aiDisplay=
r.aiDisplayMaster.slice();r.bInitialised=!0;!1===n&&za(r)};g.bStateSave?(M.bStateSave=!0,Q(r,"aoDrawCallback",Qa,"state_save"),dc(r,g,f)):f()}});b=null;return this},L,w,J,rb={},gc=/[\r\n\u2028]/g,Ta=/<.*?>/g,tc=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,uc=/(\/|\.|\*|\+|\?|\||\(|\)|\[|\]|\{|\}|\\|\$|\^|\-)/g,qb=/['\u00A0,$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,ca=function(a){return a&&!0!==a&&"-"!==a?!1:!0},hc=function(a){var b=parseInt(a,10);return!isNaN(b)&&
isFinite(a)?b:null},ic=function(a,b){rb[b]||(rb[b]=new RegExp(hb(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(rb[b],"."):a},sb=function(a,b,c){var d="string"===typeof a;if(ca(a))return!0;b&&d&&(a=ic(a,b));c&&d&&(a=a.replace(qb,""));return!isNaN(parseFloat(a))&&isFinite(a)},jc=function(a,b,c){return ca(a)?!0:ca(a)||"string"===typeof a?sb(a.replace(Ta,""),b,c)?!0:null:null},T=function(a,b,c){var d=[],e=0,f=a.length;if(c!==q)for(;e<f;e++)a[e]&&a[e][b]&&d.push(a[e][b][c]);else for(;e<
f;e++)a[e]&&d.push(a[e][b]);return d},Ca=function(a,b,c,d){var e=[],f=0,g=b.length;if(d!==q)for(;f<g;f++)a[b[f]][c]&&e.push(a[b[f]][c][d]);else for(;f<g;f++)e.push(a[b[f]][c]);return e},qa=function(a,b){var c=[];if(b===q){b=0;var d=a}else d=b,b=a;for(a=b;a<d;a++)c.push(a);return c},kc=function(a){for(var b=[],c=0,d=a.length;c<d;c++)a[c]&&b.push(a[c]);return b},Ja=function(a){a:{if(!(2>a.length)){var b=a.slice().sort();for(var c=b[0],d=1,e=b.length;d<e;d++){if(b[d]===c){b=!1;break a}c=b[d]}}b=!0}if(b)return a.slice();
b=[];e=a.length;var f,g=0;d=0;a:for(;d<e;d++){c=a[d];for(f=0;f<g;f++)if(b[f]===c)continue a;b.push(c);g++}return b},lc=function(a,b){if(Array.isArray(b))for(var c=0;c<b.length;c++)lc(a,b[c]);else a.push(b);return a};Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")});u.util={throttle:function(a,b){var c=b!==q?b:200,d,e;return function(){var f=
this,g=+new Date,h=arguments;d&&g<d+c?(clearTimeout(e),e=setTimeout(function(){d=q;a.apply(f,h)},c)):(d=g,a.apply(f,h))}},escapeRegex:function(a){return a.replace(uc,"\\$1")}};var R=function(a,b,c){a[b]!==q&&(a[c]=a[b])},ua=/\[.*?\]$/,oa=/\(\)$/,hb=u.util.escapeRegex,Oa=k("<div>")[0],rc=Oa.textContent!==q,sc=/<.*?>/g,fb=u.util.throttle,mc=[],N=Array.prototype,vc=function(a){var b,c=u.settings,d=k.map(c,function(f,g){return f.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase()){var e=
k.inArray(a,d);return-1!==e?[c[e]]:null}if(a&&"function"===typeof a.settings)return a.settings().toArray();"string"===typeof a?b=k(a):a instanceof k&&(b=a)}else return[];if(b)return b.map(function(f){e=k.inArray(this,d);return-1!==e?c[e]:null}).toArray()};var D=function(a,b){if(!(this instanceof D))return new D(a,b);var c=[],d=function(g){(g=vc(g))&&c.push.apply(c,g)};if(Array.isArray(a))for(var e=0,f=a.length;e<f;e++)d(a[e]);else d(a);this.context=Ja(c);b&&k.merge(this,b);this.selector={rows:null,
cols:null,opts:null};D.extend(this,this,mc)};u.Api=D;k.extend(D.prototype,{any:function(){return 0!==this.count()},concat:N.concat,context:[],count:function(){return this.flatten().length},each:function(a){for(var b=0,c=this.length;b<c;b++)a.call(this,this[b],b,this);return this},eq:function(a){var b=this.context;return b.length>a?new D(b[a],this[a]):null},filter:function(a){var b=[];if(N.filter)b=N.filter.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)a.call(this,this[c],c,this)&&b.push(this[c]);
return new D(this.context,b)},flatten:function(){var a=[];return new D(this.context,a.concat.apply(a,this.toArray()))},join:N.join,indexOf:N.indexOf||function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1},iterator:function(a,b,c,d){var e=[],f,g,h=this.context,l,n=this.selector;"string"===typeof a&&(d=c,c=b,b=a,a=!1);var m=0;for(f=h.length;m<f;m++){var p=new D(h[m]);if("table"===b){var t=c.call(p,h[m],m);t!==q&&e.push(t)}else if("columns"===b||"rows"===b)t=c.call(p,h[m],
this[m],m),t!==q&&e.push(t);else if("column"===b||"column-rows"===b||"row"===b||"cell"===b){var v=this[m];"column-rows"===b&&(l=Ua(h[m],n.opts));var x=0;for(g=v.length;x<g;x++)t=v[x],t="cell"===b?c.call(p,h[m],t.row,t.column,m,x):c.call(p,h[m],t,m,x,l),t!==q&&e.push(t)}}return e.length||d?(a=new D(h,a?e.concat.apply([],e):e),b=a.selector,b.rows=n.rows,b.cols=n.cols,b.opts=n.opts,a):this},lastIndexOf:N.lastIndexOf||function(a,b){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,
map:function(a){var b=[];if(N.map)b=N.map.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)b.push(a.call(this,this[c],c));return new D(this.context,b)},pluck:function(a){return this.map(function(b){return b[a]})},pop:N.pop,push:N.push,reduce:N.reduce||function(a,b){return Bb(this,a,b,0,this.length,1)},reduceRight:N.reduceRight||function(a,b){return Bb(this,a,b,this.length-1,-1,-1)},reverse:N.reverse,selector:null,shift:N.shift,slice:function(){return new D(this.context,this)},sort:N.sort,
splice:N.splice,toArray:function(){return N.slice.call(this)},to$:function(){return k(this)},toJQuery:function(){return k(this)},unique:function(){return new D(this.context,Ja(this))},unshift:N.unshift});D.extend=function(a,b,c){if(c.length&&b&&(b instanceof D||b.__dt_wrapper)){var d,e=function(h,l,n){return function(){var m=l.apply(h,arguments);D.extend(m,m,n.methodExt);return m}};var f=0;for(d=c.length;f<d;f++){var g=c[f];b[g.name]="function"===g.type?e(a,g.val,g):"object"===g.type?{}:g.val;b[g.name].__dt_wrapper=
!0;D.extend(a,b[g.name],g.propExt)}}};D.register=w=function(a,b){if(Array.isArray(a))for(var c=0,d=a.length;c<d;c++)D.register(a[c],b);else{d=a.split(".");var e=mc,f;a=0;for(c=d.length;a<c;a++){var g=(f=-1!==d[a].indexOf("()"))?d[a].replace("()",""):d[a];a:{var h=0;for(var l=e.length;h<l;h++)if(e[h].name===g){h=e[h];break a}h=null}h||(h={name:g,val:{},methodExt:[],propExt:[],type:"object"},e.push(h));a===c-1?(h.val=b,h.type="function"===typeof b?"function":k.isPlainObject(b)?"object":"other"):e=f?
h.methodExt:h.propExt}}};D.registerPlural=J=function(a,b,c){D.register(a,c);D.register(b,function(){var d=c.apply(this,arguments);return d===this?this:d instanceof D?d.length?Array.isArray(d[0])?new D(d.context,d[0]):d[0]:q:d})};var nc=function(a,b){if(Array.isArray(a))return k.map(a,function(d){return nc(d,b)});if("number"===typeof a)return[b[a]];var c=k.map(b,function(d,e){return d.nTable});return k(c).filter(a).map(function(d){d=k.inArray(this,c);return b[d]}).toArray()};w("tables()",function(a){return a!==
q&&null!==a?new D(nc(a,this.context)):this});w("table()",function(a){a=this.tables(a);var b=a.context;return b.length?new D(b[0]):a});J("tables().nodes()","table().node()",function(){return this.iterator("table",function(a){return a.nTable},1)});J("tables().body()","table().body()",function(){return this.iterator("table",function(a){return a.nTBody},1)});J("tables().header()","table().header()",function(){return this.iterator("table",function(a){return a.nTHead},1)});J("tables().footer()","table().footer()",
function(){return this.iterator("table",function(a){return a.nTFoot},1)});J("tables().containers()","table().container()",function(){return this.iterator("table",function(a){return a.nTableWrapper},1)});w("draw()",function(a){return this.iterator("table",function(b){"page"===a?fa(b):("string"===typeof a&&(a="full-hold"===a?!1:!0),ja(b,!1===a))})});w("page()",function(a){return a===q?this.page.info().page:this.iterator("table",function(b){kb(b,a)})});w("page.info()",function(a){if(0===this.context.length)return q;
a=this.context[0];var b=a._iDisplayStart,c=a.oFeatures.bPaginate?a._iDisplayLength:-1,d=a.fnRecordsDisplay(),e=-1===c;return{page:e?0:Math.floor(b/c),pages:e?1:Math.ceil(d/c),start:b,end:a.fnDisplayEnd(),length:c,recordsTotal:a.fnRecordsTotal(),recordsDisplay:d,serverSide:"ssp"===P(a)}});w("page.len()",function(a){return a===q?0!==this.context.length?this.context[0]._iDisplayLength:q:this.iterator("table",function(b){ib(b,a)})});var oc=function(a,b,c){if(c){var d=new D(a);d.one("draw",function(){c(d.ajax.json())})}if("ssp"==
P(a))ja(a,b);else{U(a,!0);var e=a.jqXHR;e&&4!==e.readyState&&e.abort();La(a,[],function(f){Ha(a);f=Ma(a,f);for(var g=0,h=f.length;g<h;g++)ea(a,f[g]);ja(a,b);U(a,!1)})}};w("ajax.json()",function(){var a=this.context;if(0<a.length)return a[0].json});w("ajax.params()",function(){var a=this.context;if(0<a.length)return a[0].oAjaxData});w("ajax.reload()",function(a,b){return this.iterator("table",function(c){oc(c,!1===b,a)})});w("ajax.url()",function(a){var b=this.context;if(a===q){if(0===b.length)return q;
b=b[0];return b.ajax?k.isPlainObject(b.ajax)?b.ajax.url:b.ajax:b.sAjaxSource}return this.iterator("table",function(c){k.isPlainObject(c.ajax)?c.ajax.url=a:c.ajax=a})});w("ajax.url().load()",function(a,b){return this.iterator("table",function(c){oc(c,!1===b,a)})});var tb=function(a,b,c,d,e){var f=[],g,h,l;var n=typeof b;b&&"string"!==n&&"function"!==n&&b.length!==q||(b=[b]);n=0;for(h=b.length;n<h;n++){var m=b[n]&&b[n].split&&!b[n].match(/[\[\(:]/)?b[n].split(","):[b[n]];var p=0;for(l=m.length;p<l;p++)(g=
c("string"===typeof m[p]?m[p].trim():m[p]))&&g.length&&(f=f.concat(g))}a=L.selector[a];if(a.length)for(n=0,h=a.length;n<h;n++)f=a[n](d,e,f);return Ja(f)},ub=function(a){a||(a={});a.filter&&a.search===q&&(a.search=a.filter);return k.extend({search:"none",order:"current",page:"all"},a)},vb=function(a){for(var b=0,c=a.length;b<c;b++)if(0<a[b].length)return a[0]=a[b],a[0].length=1,a.length=1,a.context=[a.context[b]],a;a.length=0;return a},Ua=function(a,b){var c=[],d=a.aiDisplay;var e=a.aiDisplayMaster;
var f=b.search;var g=b.order;b=b.page;if("ssp"==P(a))return"removed"===f?[]:qa(0,e.length);if("current"==b)for(g=a._iDisplayStart,a=a.fnDisplayEnd();g<a;g++)c.push(d[g]);else if("current"==g||"applied"==g)if("none"==f)c=e.slice();else if("applied"==f)c=d.slice();else{if("removed"==f){var h={};g=0;for(a=d.length;g<a;g++)h[d[g]]=null;c=k.map(e,function(l){return h.hasOwnProperty(l)?null:l})}}else if("index"==g||"original"==g)for(g=0,a=a.aoData.length;g<a;g++)"none"==f?c.push(g):(e=k.inArray(g,d),(-1===
e&&"removed"==f||0<=e&&"applied"==f)&&c.push(g));return c},wc=function(a,b,c){var d;return tb("row",b,function(e){var f=hc(e),g=a.aoData;if(null!==f&&!c)return[f];d||(d=Ua(a,c));if(null!==f&&-1!==k.inArray(f,d))return[f];if(null===e||e===q||""===e)return d;if("function"===typeof e)return k.map(d,function(l){var n=g[l];return e(l,n._aData,n.nTr)?l:null});if(e.nodeName){f=e._DT_RowIndex;var h=e._DT_CellIndex;if(f!==q)return g[f]&&g[f].nTr===e?[f]:[];if(h)return g[h.row]&&g[h.row].nTr===e.parentNode?
[h.row]:[];f=k(e).closest("*[data-dt-row]");return f.length?[f.data("dt-row")]:[]}if("string"===typeof e&&"#"===e.charAt(0)&&(f=a.aIds[e.replace(/^#/,"")],f!==q))return[f.idx];f=kc(Ca(a.aoData,d,"nTr"));return k(f).filter(e).map(function(){return this._DT_RowIndex}).toArray()},a,c)};w("rows()",function(a,b){a===q?a="":k.isPlainObject(a)&&(b=a,a="");b=ub(b);var c=this.iterator("table",function(d){return wc(d,a,b)},1);c.selector.rows=a;c.selector.opts=b;return c});w("rows().nodes()",function(){return this.iterator("row",
function(a,b){return a.aoData[b].nTr||q},1)});w("rows().data()",function(){return this.iterator(!0,"rows",function(a,b){return Ca(a.aoData,b,"_aData")},1)});J("rows().cache()","row().cache()",function(a){return this.iterator("row",function(b,c){b=b.aoData[c];return"search"===a?b._aFilterData:b._aSortData},1)});J("rows().invalidate()","row().invalidate()",function(a){return this.iterator("row",function(b,c){va(b,c,a)})});J("rows().indexes()","row().index()",function(){return this.iterator("row",function(a,
b){return b},1)});J("rows().ids()","row().id()",function(a){for(var b=[],c=this.context,d=0,e=c.length;d<e;d++)for(var f=0,g=this[d].length;f<g;f++){var h=c[d].rowIdFn(c[d].aoData[this[d][f]]._aData);b.push((!0===a?"#":"")+h)}return new D(c,b)});J("rows().remove()","row().remove()",function(){var a=this;this.iterator("row",function(b,c,d){var e=b.aoData,f=e[c],g,h;e.splice(c,1);var l=0;for(g=e.length;l<g;l++){var n=e[l];var m=n.anCells;null!==n.nTr&&(n.nTr._DT_RowIndex=l);if(null!==m)for(n=0,h=m.length;n<
h;n++)m[n]._DT_CellIndex.row=l}Ia(b.aiDisplayMaster,c);Ia(b.aiDisplay,c);Ia(a[d],c,!1);0<b._iRecordsDisplay&&b._iRecordsDisplay--;jb(b);c=b.rowIdFn(f._aData);c!==q&&delete b.aIds[c]});this.iterator("table",function(b){for(var c=0,d=b.aoData.length;c<d;c++)b.aoData[c].idx=c});return this});w("rows.add()",function(a){var b=this.iterator("table",function(d){var e,f=[];var g=0;for(e=a.length;g<e;g++){var h=a[g];h.nodeName&&"TR"===h.nodeName.toUpperCase()?f.push(Ga(d,h)[0]):f.push(ea(d,h))}return f},1),
c=this.rows(-1);c.pop();k.merge(c,b);return c});w("row()",function(a,b){return vb(this.rows(a,b))});w("row().data()",function(a){var b=this.context;if(a===q)return b.length&&this.length?b[0].aoData[this[0]]._aData:q;var c=b[0].aoData[this[0]];c._aData=a;Array.isArray(a)&&c.nTr&&c.nTr.id&&da(b[0].rowId)(a,c.nTr.id);va(b[0],this[0],"data");return this});w("row().node()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]].nTr||null:null});w("row.add()",function(a){a instanceof
k&&a.length&&(a=a[0]);var b=this.iterator("table",function(c){return a.nodeName&&"TR"===a.nodeName.toUpperCase()?Ga(c,a)[0]:ea(c,a)});return this.row(b[0])});var xc=function(a,b,c,d){var e=[],f=function(g,h){if(Array.isArray(g)||g instanceof k)for(var l=0,n=g.length;l<n;l++)f(g[l],h);else g.nodeName&&"tr"===g.nodeName.toLowerCase()?e.push(g):(l=k("<tr><td></td></tr>").addClass(h),k("td",l).addClass(h).html(g)[0].colSpan=na(a),e.push(l[0]))};f(c,d);b._details&&b._details.detach();b._details=k(e);b._detailsShow&&
b._details.insertAfter(b.nTr)},wb=function(a,b){var c=a.context;c.length&&(a=c[0].aoData[b!==q?b:a[0]])&&a._details&&(a._details.remove(),a._detailsShow=q,a._details=q)},pc=function(a,b){var c=a.context;c.length&&a.length&&(a=c[0].aoData[a[0]],a._details&&((a._detailsShow=b)?a._details.insertAfter(a.nTr):a._details.detach(),yc(c[0])))},yc=function(a){var b=new D(a),c=a.aoData;b.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details");0<T(c,"_details").length&&(b.on("draw.dt.DT_details",
function(d,e){a===e&&b.rows({page:"current"}).eq(0).each(function(f){f=c[f];f._detailsShow&&f._details.insertAfter(f.nTr)})}),b.on("column-visibility.dt.DT_details",function(d,e,f,g){if(a===e)for(e=na(e),f=0,g=c.length;f<g;f++)d=c[f],d._details&&d._details.children("td[colspan]").attr("colspan",e)}),b.on("destroy.dt.DT_details",function(d,e){if(a===e)for(d=0,e=c.length;d<e;d++)c[d]._details&&wb(b,d)}))};w("row().child()",function(a,b){var c=this.context;if(a===q)return c.length&&this.length?c[0].aoData[this[0]]._details:
q;!0===a?this.child.show():!1===a?wb(this):c.length&&this.length&&xc(c[0],c[0].aoData[this[0]],a,b);return this});w(["row().child.show()","row().child().show()"],function(a){pc(this,!0);return this});w(["row().child.hide()","row().child().hide()"],function(){pc(this,!1);return this});w(["row().child.remove()","row().child().remove()"],function(){wb(this);return this});w("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var zc=
/^([^:]+):(name|visIdx|visible)$/,qc=function(a,b,c,d,e){c=[];d=0;for(var f=e.length;d<f;d++)c.push(S(a,e[d],b));return c},Ac=function(a,b,c){var d=a.aoColumns,e=T(d,"sName"),f=T(d,"nTh");return tb("column",b,function(g){var h=hc(g);if(""===g)return qa(d.length);if(null!==h)return[0<=h?h:d.length+h];if("function"===typeof g){var l=Ua(a,c);return k.map(d,function(p,t){return g(t,qc(a,t,0,0,l),f[t])?t:null})}var n="string"===typeof g?g.match(zc):"";if(n)switch(n[2]){case "visIdx":case "visible":h=parseInt(n[1],
10);if(0>h){var m=k.map(d,function(p,t){return p.bVisible?t:null});return[m[m.length+h]]}return[sa(a,h)];case "name":return k.map(e,function(p,t){return p===n[1]?t:null});default:return[]}if(g.nodeName&&g._DT_CellIndex)return[g._DT_CellIndex.column];h=k(f).filter(g).map(function(){return k.inArray(this,f)}).toArray();if(h.length||!g.nodeName)return h;h=k(g).closest("*[data-dt-column]");return h.length?[h.data("dt-column")]:[]},a,c)};w("columns()",function(a,b){a===q?a="":k.isPlainObject(a)&&(b=a,
a="");b=ub(b);var c=this.iterator("table",function(d){return Ac(d,a,b)},1);c.selector.cols=a;c.selector.opts=b;return c});J("columns().header()","column().header()",function(a,b){return this.iterator("column",function(c,d){return c.aoColumns[d].nTh},1)});J("columns().footer()","column().footer()",function(a,b){return this.iterator("column",function(c,d){return c.aoColumns[d].nTf},1)});J("columns().data()","column().data()",function(){return this.iterator("column-rows",qc,1)});J("columns().dataSrc()",
"column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},1)});J("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,f){return Ca(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});J("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return Ca(a.aoData,e,"anCells",b)},1)});J("columns().visible()","column().visible()",function(a,b){var c=
this,d=this.iterator("column",function(e,f){if(a===q)return e.aoColumns[f].bVisible;var g=e.aoColumns,h=g[f],l=e.aoData,n;if(a!==q&&h.bVisible!==a){if(a){var m=k.inArray(!0,T(g,"bVisible"),f+1);g=0;for(n=l.length;g<n;g++){var p=l[g].nTr;e=l[g].anCells;p&&p.insertBefore(e[f],e[m]||null)}}else k(T(e.aoData,"anCells",f)).detach();h.bVisible=a}});a!==q&&this.iterator("table",function(e){xa(e,e.aoHeader);xa(e,e.aoFooter);e.aiDisplay.length||k(e.nTBody).find("td[colspan]").attr("colspan",na(e));Qa(e);c.iterator("column",
function(f,g){H(f,null,"column-visibility",[f,g,a,b])});(b===q||b)&&c.columns.adjust()});return d});J("columns().indexes()","column().index()",function(a){return this.iterator("column",function(b,c){return"visible"===a?ta(b,c):c},1)});w("columns.adjust()",function(){return this.iterator("table",function(a){ra(a)},1)});w("column.index()",function(a,b){if(0!==this.context.length){var c=this.context[0];if("fromVisible"===a||"toData"===a)return sa(c,b);if("fromData"===a||"toVisible"===a)return ta(c,b)}});
w("column()",function(a,b){return vb(this.columns(a,b))});var Bc=function(a,b,c){var d=a.aoData,e=Ua(a,c),f=kc(Ca(d,e,"anCells")),g=k(lc([],f)),h,l=a.aoColumns.length,n,m,p,t,v,x;return tb("cell",b,function(r){var A="function"===typeof r;if(null===r||r===q||A){n=[];m=0;for(p=e.length;m<p;m++)for(h=e[m],t=0;t<l;t++)v={row:h,column:t},A?(x=d[h],r(v,S(a,h,t),x.anCells?x.anCells[t]:null)&&n.push(v)):n.push(v);return n}if(k.isPlainObject(r))return r.column!==q&&r.row!==q&&-1!==k.inArray(r.row,e)?[r]:[];
A=g.filter(r).map(function(E,I){return{row:I._DT_CellIndex.row,column:I._DT_CellIndex.column}}).toArray();if(A.length||!r.nodeName)return A;x=k(r).closest("*[data-dt-row]");return x.length?[{row:x.data("dt-row"),column:x.data("dt-column")}]:[]},a,c)};w("cells()",function(a,b,c){k.isPlainObject(a)&&(a.row===q?(c=a,a=null):(c=b,b=null));k.isPlainObject(b)&&(c=b,b=null);if(null===b||b===q)return this.iterator("table",function(m){return Bc(m,a,ub(c))});var d=c?{page:c.page,order:c.order,search:c.search}:
{},e=this.columns(b,d),f=this.rows(a,d),g,h,l,n;d=this.iterator("table",function(m,p){m=[];g=0;for(h=f[p].length;g<h;g++)for(l=0,n=e[p].length;l<n;l++)m.push({row:f[p][g],column:e[p][l]});return m},1);d=c&&c.selected?this.cells(d,c):d;k.extend(d.selector,{cols:b,rows:a,opts:c});return d});J("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(a,b,c){return(a=a.aoData[b])&&a.anCells?a.anCells[c]:q},1)});w("cells().data()",function(){return this.iterator("cell",function(a,
b,c){return S(a,b,c)},1)});J("cells().cache()","cell().cache()",function(a){a="search"===a?"_aFilterData":"_aSortData";return this.iterator("cell",function(b,c,d){return b.aoData[c][a][d]},1)});J("cells().render()","cell().render()",function(a){return this.iterator("cell",function(b,c,d){return S(b,c,d,a)},1)});J("cells().indexes()","cell().index()",function(){return this.iterator("cell",function(a,b,c){return{row:b,column:c,columnVisible:ta(a,c)}},1)});J("cells().invalidate()","cell().invalidate()",
function(a){return this.iterator("cell",function(b,c,d){va(b,c,a,d)})});w("cell()",function(a,b,c){return vb(this.cells(a,b,c))});w("cell().data()",function(a){var b=this.context,c=this[0];if(a===q)return b.length&&c.length?S(b[0],c[0].row,c[0].column):q;Db(b[0],c[0].row,c[0].column,a);va(b[0],c[0].row,"data",c[0].column);return this});w("order()",function(a,b){var c=this.context;if(a===q)return 0!==c.length?c[0].aaSorting:q;"number"===typeof a?a=[[a,b]]:a.length&&!Array.isArray(a[0])&&(a=Array.prototype.slice.call(arguments));
return this.iterator("table",function(d){d.aaSorting=a.slice()})});w("order.listener()",function(a,b,c){return this.iterator("table",function(d){db(d,a,b,c)})});w("order.fixed()",function(a){if(!a){var b=this.context;b=b.length?b[0].aaSortingFixed:q;return Array.isArray(b)?{pre:b}:b}return this.iterator("table",function(c){c.aaSortingFixed=k.extend(!0,{},a)})});w(["columns().order()","column().order()"],function(a){var b=this;return this.iterator("table",function(c,d){var e=[];k.each(b[d],function(f,
g){e.push([g,a])});c.aaSorting=e})});w("search()",function(a,b,c,d){var e=this.context;return a===q?0!==e.length?e[0].oPreviousSearch.sSearch:q:this.iterator("table",function(f){f.oFeatures.bFilter&&ya(f,k.extend({},f.oPreviousSearch,{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),1)})});J("columns().search()","column().search()",function(a,b,c,d){return this.iterator("column",function(e,f){var g=e.aoPreSearchCols;if(a===q)return g[f].sSearch;e.oFeatures.bFilter&&
(k.extend(g[f],{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),ya(e,e.oPreviousSearch,1))})});w("state()",function(){return this.context.length?this.context[0].oSavedState:null});w("state.clear()",function(){return this.iterator("table",function(a){a.fnStateSaveCallback.call(a.oInstance,a,{})})});w("state.loaded()",function(){return this.context.length?this.context[0].oLoadedState:null});w("state.save()",function(){return this.iterator("table",function(a){Qa(a)})});
u.versionCheck=u.fnVersionCheck=function(a){var b=u.version.split(".");a=a.split(".");for(var c,d,e=0,f=a.length;e<f;e++)if(c=parseInt(b[e],10)||0,d=parseInt(a[e],10)||0,c!==d)return c>d;return!0};u.isDataTable=u.fnIsDataTable=function(a){var b=k(a).get(0),c=!1;if(a instanceof u.Api)return!0;k.each(u.settings,function(d,e){d=e.nScrollHead?k("table",e.nScrollHead)[0]:null;var f=e.nScrollFoot?k("table",e.nScrollFoot)[0]:null;if(e.nTable===b||d===b||f===b)c=!0});return c};u.tables=u.fnTables=function(a){var b=
!1;k.isPlainObject(a)&&(b=a.api,a=a.visible);var c=k.map(u.settings,function(d){if(!a||a&&k(d.nTable).is(":visible"))return d.nTable});return b?new D(c):c};u.camelToHungarian=O;w("$()",function(a,b){b=this.rows(b).nodes();b=k(b);return k([].concat(b.filter(a).toArray(),b.find(a).toArray()))});k.each(["on","one","off"],function(a,b){w(b+"()",function(){var c=Array.prototype.slice.call(arguments);c[0]=k.map(c[0].split(/\s/),function(e){return e.match(/\.dt\b/)?e:e+".dt"}).join(" ");var d=k(this.tables().nodes());
d[b].apply(d,c);return this})});w("clear()",function(){return this.iterator("table",function(a){Ha(a)})});w("settings()",function(){return new D(this.context,this.context)});w("init()",function(){var a=this.context;return a.length?a[0].oInit:null});w("data()",function(){return this.iterator("table",function(a){return T(a.aoData,"_aData")}).flatten()});w("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,
h=b.nTFoot,l=k(e);f=k(f);var n=k(b.nTableWrapper),m=k.map(b.aoData,function(t){return t.nTr}),p;b.bDestroying=!0;H(b,"aoDestroyCallback","destroy",[b]);a||(new D(b)).columns().visible(!0);n.off(".DT").find(":not(tbody *)").off(".DT");k(y).off(".DT-"+b.sInstance);e!=g.parentNode&&(l.children("thead").detach(),l.append(g));h&&e!=h.parentNode&&(l.children("tfoot").detach(),l.append(h));b.aaSorting=[];b.aaSortingFixed=[];Pa(b);k(m).removeClass(b.asStripeClasses.join(" "));k("th, td",g).removeClass(d.sSortable+
" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);f.children().detach();f.append(m);g=a?"remove":"detach";l[g]();n[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),l.css("width",b.sDestroyWidth).removeClass(d.sTable),(p=b.asDestroyStripes.length)&&f.children().each(function(t){k(this).addClass(b.asDestroyStripes[t%p])}));c=k.inArray(b,u.settings);-1!==c&&u.settings.splice(c,1)})});k.each(["column","row","cell"],function(a,b){w(b+"s().every()",function(c){var d=this.selector.opts,e=
this;return this.iterator(b,function(f,g,h,l,n){c.call(e[b](g,"cell"===b?h:d,"cell"===b?d:q),g,h,l,n)})})});w("i18n()",function(a,b,c){var d=this.context[0];a=ia(a)(d.oLanguage);a===q&&(a=b);c!==q&&k.isPlainObject(a)&&(a=a[c]!==q?a[c]:a._);return a.replace("%d",c)});u.version="1.10.24";u.settings=[];u.models={};u.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};u.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,
idx:-1};u.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};u.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,
25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,
fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+a.sInstance+"_"+location.pathname))}catch(b){return{}}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},
fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",
sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:k.extend({},u.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};G(u.defaults);u.defaults.column={aDataSort:null,
iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};G(u.defaults.column);u.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,
iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],
aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:q,oAjaxData:q,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,
iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==P(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==P(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,
f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};u.ext=L={buttons:{},classes:{},builder:"bs4/dt-1.10.24/cr-1.5.3/r-2.2.7/rr-1.2.7",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:u.fnVersionCheck,
iApiIndex:0,oJUIClasses:{},sVersion:u.version};k.extend(L,{afnFiltering:L.search,aTypes:L.type.detect,ofnSearch:L.type.search,oSort:L.type.order,afnSortData:L.order,aoFeatures:L.feature,oApi:L.internal,oStdClasses:L.classes,oPagination:L.pager});k.extend(u.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",
sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_desc_disabled",sSortableDesc:"sorting_asc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",
sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sJUIHeader:"",sJUIFooter:""});var ec=u.ext.pager;k.extend(ec,{simple:function(a,b){return["previous","next"]},full:function(a,b){return["first","previous","next","last"]},numbers:function(a,b){return[Ba(a,b)]},simple_numbers:function(a,b){return["previous",Ba(a,b),"next"]},
full_numbers:function(a,b){return["first","previous",Ba(a,b),"next","last"]},first_last_numbers:function(a,b){return["first",Ba(a,b),"last"]},_numbers:Ba,numbers_length:7});k.extend(!0,u.ext.renderer,{pageButton:{_:function(a,b,c,d,e,f){var g=a.oClasses,h=a.oLanguage.oPaginate,l=a.oLanguage.oAria.paginate||{},n,m,p=0,t=function(x,r){var A,E=g.sPageButtonDisabled,I=function(B){kb(a,B.data.action,!0)};var W=0;for(A=r.length;W<A;W++){var M=r[W];if(Array.isArray(M)){var C=k("<"+(M.DT_el||"div")+"/>").appendTo(x);
t(C,M)}else{n=null;m=M;C=a.iTabIndex;switch(M){case "ellipsis":x.append('<span class="ellipsis">&#x2026;</span>');break;case "first":n=h.sFirst;0===e&&(C=-1,m+=" "+E);break;case "previous":n=h.sPrevious;0===e&&(C=-1,m+=" "+E);break;case "next":n=h.sNext;if(0===f||e===f-1)C=-1,m+=" "+E;break;case "last":n=h.sLast;if(0===f||e===f-1)C=-1,m+=" "+E;break;default:n=a.fnFormatNumber(M+1),m=e===M?g.sPageButtonActive:""}null!==n&&(C=k("<a>",{"class":g.sPageButton+" "+m,"aria-controls":a.sTableId,"aria-label":l[M],
"data-dt-idx":p,tabindex:C,id:0===c&&"string"===typeof M?a.sTableId+"_"+M:null}).html(n).appendTo(x),ob(C,{action:M},I),p++)}}};try{var v=k(b).find(z.activeElement).data("dt-idx")}catch(x){}t(k(b).empty(),d);v!==q&&k(b).find("[data-dt-idx="+v+"]").trigger("focus")}}});k.extend(u.ext.type.detect,[function(a,b){b=b.oLanguage.sDecimal;return sb(a,b)?"num"+b:null},function(a,b){if(a&&!(a instanceof Date)&&!tc.test(a))return null;b=Date.parse(a);return null!==b&&!isNaN(b)||ca(a)?"date":null},function(a,
b){b=b.oLanguage.sDecimal;return sb(a,b,!0)?"num-fmt"+b:null},function(a,b){b=b.oLanguage.sDecimal;return jc(a,b)?"html-num"+b:null},function(a,b){b=b.oLanguage.sDecimal;return jc(a,b,!0)?"html-num-fmt"+b:null},function(a,b){return ca(a)||"string"===typeof a&&-1!==a.indexOf("<")?"html":null}]);k.extend(u.ext.type.search,{html:function(a){return ca(a)?a:"string"===typeof a?a.replace(gc," ").replace(Ta,""):""},string:function(a){return ca(a)?a:"string"===typeof a?a.replace(gc," "):a}});var Sa=function(a,
b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=ic(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};k.extend(L.type.order,{"date-pre":function(a){a=Date.parse(a);return isNaN(a)?-Infinity:a},"html-pre":function(a){return ca(a)?"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return ca(a)?"":"string"===typeof a?a.toLowerCase():a.toString?a.toString():""},"string-asc":function(a,b){return a<b?-1:a>b?1:0},"string-desc":function(a,b){return a<
b?1:a>b?-1:0}});Va("");k.extend(!0,u.ext.renderer,{header:{_:function(a,b,c,d){k(a.nTable).on("order.dt.DT",function(e,f,g,h){a===f&&(e=c.idx,b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass("asc"==h[e]?d.sSortAsc:"desc"==h[e]?d.sSortDesc:c.sSortingClass))})},jqueryui:function(a,b,c,d){k("<div/>").addClass(d.sSortJUIWrapper).append(b.contents()).append(k("<span/>").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);k(a.nTable).on("order.dt.DT",function(e,f,g,h){a===f&&(e=c.idx,b.removeClass(d.sSortAsc+
" "+d.sSortDesc).addClass("asc"==h[e]?d.sSortAsc:"desc"==h[e]?d.sSortDesc:c.sSortingClass),b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass("asc"==h[e]?d.sSortJUIAsc:"desc"==h[e]?d.sSortJUIDesc:c.sSortingClassJUI))})}}});var xb=function(a){return"string"===typeof a?a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"):a};u.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==
typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return xb(f);h=h.toFixed(c);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,a)+f+(e||"")}}},text:function(){return{display:xb,filter:xb}}};k.extend(u.ext.internal,{_fnExternApiFunc:fc,_fnBuildAjax:La,_fnAjaxUpdate:Fb,_fnAjaxParameters:Ob,_fnAjaxUpdateDraw:Pb,_fnAjaxDataSrc:Ma,_fnAddColumn:Wa,_fnColumnOptions:Da,_fnAdjustColumnSizing:ra,
_fnVisibleToColumnIndex:sa,_fnColumnIndexToVisible:ta,_fnVisbleColumns:na,_fnGetColumns:Fa,_fnColumnTypes:Ya,_fnApplyColumnDefs:Cb,_fnHungarianMap:G,_fnCamelToHungarian:O,_fnLanguageCompat:ma,_fnBrowserDetect:Ab,_fnAddData:ea,_fnAddTr:Ga,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==q?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return k.inArray(c,a.aoData[b].anCells)},_fnGetCellData:S,_fnSetCellData:Db,_fnSplitObjNotation:ab,_fnGetObjectDataFn:ia,_fnSetObjectDataFn:da,_fnGetDataMaster:bb,
_fnClearTable:Ha,_fnDeleteIndex:Ia,_fnInvalidate:va,_fnGetRowElements:$a,_fnCreateTr:Za,_fnBuildHead:Eb,_fnDrawHead:xa,_fnDraw:fa,_fnReDraw:ja,_fnAddOptionsHtml:Hb,_fnDetectHeader:wa,_fnGetUniqueThs:Ka,_fnFeatureHtmlFilter:Jb,_fnFilterComplete:ya,_fnFilterCustom:Sb,_fnFilterColumn:Rb,_fnFilter:Qb,_fnFilterCreateSearch:gb,_fnEscapeRegex:hb,_fnFilterData:Tb,_fnFeatureHtmlInfo:Mb,_fnUpdateInfo:Wb,_fnInfoMacros:Xb,_fnInitialise:za,_fnInitComplete:Na,_fnLengthChange:ib,_fnFeatureHtmlLength:Ib,_fnFeatureHtmlPaginate:Nb,
_fnPageChange:kb,_fnFeatureHtmlProcessing:Kb,_fnProcessingDisplay:U,_fnFeatureHtmlTable:Lb,_fnScrollDraw:Ea,_fnApplyToChildren:Z,_fnCalculateColumnWidths:Xa,_fnThrottle:fb,_fnConvertToWidth:Zb,_fnGetWidestNode:$b,_fnGetMaxLenString:ac,_fnStringToCss:K,_fnSortFlatten:pa,_fnSort:Gb,_fnSortAria:cc,_fnSortListener:nb,_fnSortAttachListener:db,_fnSortingClasses:Pa,_fnSortData:bc,_fnSaveState:Qa,_fnLoadState:dc,_fnSettingsFromNode:Ra,_fnLog:aa,_fnMap:V,_fnBindAction:ob,_fnCallbackReg:Q,_fnCallbackFire:H,
_fnLengthOverflow:jb,_fnRenderer:eb,_fnDataSource:P,_fnRowAttributes:cb,_fnExtend:pb,_fnCalculateEnd:function(){}});k.fn.dataTable=u;u.$=k;k.fn.dataTableSettings=u.settings;k.fn.dataTableExt=u.ext;k.fn.DataTable=function(a){return k(this).dataTable(a).api()};k.each(u,function(a,b){k.fn.DataTable[a]=b});return k.fn.dataTable});


/*!
 DataTables Bootstrap 4 integration
 ©2011-2017 SpryMedia Ltd - datatables.net/license
*/
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var e=a.length,d=0;d<e;d++){var f=a[d];if(b.call(c,f,d,a))return{i:d,v:f}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.ISOLATE_POLYFILLS=!1;
$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};$jscomp.getGlobal=function(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");};$jscomp.global=$jscomp.getGlobal(this);
$jscomp.IS_SYMBOL_NATIVE="function"===typeof Symbol&&"symbol"===typeof Symbol("x");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX="$jscp$";var $jscomp$lookupPolyfilledValue=function(a,b){var c=$jscomp.propertyToPolyfillSymbol[b];if(null==c)return a[b];c=a[c];return void 0!==c?c:a[b]};
$jscomp.polyfill=function(a,b,c,e){b&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(a,b,c,e):$jscomp.polyfillUnisolated(a,b,c,e))};$jscomp.polyfillUnisolated=function(a,b,c,e){c=$jscomp.global;a=a.split(".");for(e=0;e<a.length-1;e++){var d=a[e];if(!(d in c))return;c=c[d]}a=a[a.length-1];e=c[a];b=b(e);b!=e&&null!=b&&$jscomp.defineProperty(c,a,{configurable:!0,writable:!0,value:b})};
$jscomp.polyfillIsolated=function(a,b,c,e){var d=a.split(".");a=1===d.length;e=d[0];e=!a&&e in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var f=0;f<d.length-1;f++){var l=d[f];if(!(l in e))return;e=e[l]}d=d[d.length-1];c=$jscomp.IS_SYMBOL_NATIVE&&"es6"===c?e[d]:null;b=b(c);null!=b&&(a?$jscomp.defineProperty($jscomp.polyfills,d,{configurable:!0,writable:!0,value:b}):b!==c&&($jscomp.propertyToPolyfillSymbol[d]=$jscomp.IS_SYMBOL_NATIVE?$jscomp.global.Symbol(d):$jscomp.POLYFILL_PREFIX+d,d=
$jscomp.propertyToPolyfillSymbol[d],$jscomp.defineProperty(e,d,{configurable:!0,writable:!0,value:b})))};$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(b,c){return $jscomp.findInternal(this,b,c).v}},"es6","es3");
(function(a){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(b){return a(b,window,document)}):"object"===typeof exports?module.exports=function(b,c){b||(b=window);c&&c.fn.dataTable||(c=require("datatables.net")(b,c).$);return a(c,b,b.document)}:a(jQuery,window,document)})(function(a,b,c,e){var d=a.fn.dataTable;a.extend(!0,d.defaults,{dom:"<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
renderer:"bootstrap"});a.extend(d.ext.classes,{sWrapper:"dataTables_wrapper dt-bootstrap4",sFilterInput:"form-control form-control-sm",sLengthSelect:"custom-select custom-select-sm form-control form-control-sm",sProcessing:"dataTables_processing card",sPageButton:"paginate_button page-item"});d.ext.renderer.pageButton.bootstrap=function(f,l,A,B,m,t){var u=new d.Api(f),C=f.oClasses,n=f.oLanguage.oPaginate,D=f.oLanguage.oAria.paginate||{},h,k,v=0,y=function(q,w){var x,E=function(p){p.preventDefault();
a(p.currentTarget).hasClass("disabled")||u.page()==p.data.action||u.page(p.data.action).draw("page")};var r=0;for(x=w.length;r<x;r++){var g=w[r];if(Array.isArray(g))y(q,g);else{k=h="";switch(g){case "ellipsis":h="&#x2026;";k="disabled";break;case "first":h=n.sFirst;k=g+(0<m?"":" disabled");break;case "previous":h=n.sPrevious;k=g+(0<m?"":" disabled");break;case "next":h=n.sNext;k=g+(m<t-1?"":" disabled");break;case "last":h=n.sLast;k=g+(m<t-1?"":" disabled");break;default:h=g+1,k=m===g?"active":""}if(h){var F=
a("<li>",{"class":C.sPageButton+" "+k,id:0===A&&"string"===typeof g?f.sTableId+"_"+g:null}).append(a("<a>",{href:"#","aria-controls":f.sTableId,"aria-label":D[g],"data-dt-idx":v,tabindex:f.iTabIndex,"class":"page-link"}).html(h)).appendTo(q);f.oApi._fnBindAction(F,{action:g},E);v++}}}};try{var z=a(l).find(c.activeElement).data("dt-idx")}catch(q){}y(a(l).empty().html('<ul class="pagination"/>').children("ul"),B);z!==e&&a(l).find("[data-dt-idx="+z+"]").trigger("focus")};return d});


/*!
   Copyright 2010-2020 SpryMedia Ltd.

 This source file is free software, available under the following license:
   MIT license - http://datatables.net/license/mit

 This source file is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.

 For details please refer to: http://www.datatables.net
 ColReorder 1.5.3
 ©2010-2020 SpryMedia Ltd - datatables.net/license
*/
(function(e){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(u){return e(u,window,document)}):"object"===typeof exports?module.exports=function(u,t){u||(u=window);t&&t.fn.dataTable||(t=require("datatables.net")(u,t).$);return e(t,u,u.document)}:e(jQuery,window,document)})(function(e,u,t,z){function y(a){for(var b=[],c=0,f=a.length;c<f;c++)b[a[c]]=c;return b}function v(a,b,c){b=a.splice(b,1)[0];a.splice(c,0,b)}function A(a,b,c){for(var f=[],h=0,g=a.childNodes.length;h<
g;h++)1==a.childNodes[h].nodeType&&f.push(a.childNodes[h]);b=f[b];null!==c?a.insertBefore(b,f[c]):a.appendChild(b)}var D=e.fn.dataTable;e.fn.dataTableExt.oApi.fnColReorder=function(a,b,c,f,h){var g,m,k=a.aoColumns.length;var p=function(w,x,E){if(w[x]&&"function"!==typeof w[x]){var B=w[x].split("."),C=B.shift();isNaN(1*C)||(w[x]=E[1*C]+"."+B.join("."))}};if(b!=c)if(0>b||b>=k)this.oApi._fnLog(a,1,"ColReorder 'from' index is out of bounds: "+b);else if(0>c||c>=k)this.oApi._fnLog(a,1,"ColReorder 'to' index is out of bounds: "+
c);else{var l=[];var d=0;for(g=k;d<g;d++)l[d]=d;v(l,b,c);var q=y(l);d=0;for(g=a.aaSorting.length;d<g;d++)a.aaSorting[d][0]=q[a.aaSorting[d][0]];if(null!==a.aaSortingFixed)for(d=0,g=a.aaSortingFixed.length;d<g;d++)a.aaSortingFixed[d][0]=q[a.aaSortingFixed[d][0]];d=0;for(g=k;d<g;d++){var n=a.aoColumns[d];l=0;for(m=n.aDataSort.length;l<m;l++)n.aDataSort[l]=q[n.aDataSort[l]];n.idx=q[n.idx]}e.each(a.aLastSort,function(w,x){a.aLastSort[w].src=q[x.src]});d=0;for(g=k;d<g;d++)n=a.aoColumns[d],"number"==typeof n.mData?
n.mData=q[n.mData]:e.isPlainObject(n.mData)&&(p(n.mData,"_",q),p(n.mData,"filter",q),p(n.mData,"sort",q),p(n.mData,"type",q));if(a.aoColumns[b].bVisible){p=this.oApi._fnColumnIndexToVisible(a,b);m=null;for(d=c<b?c:c+1;null===m&&d<k;)m=this.oApi._fnColumnIndexToVisible(a,d),d++;l=a.nTHead.getElementsByTagName("tr");d=0;for(g=l.length;d<g;d++)A(l[d],p,m);if(null!==a.nTFoot)for(l=a.nTFoot.getElementsByTagName("tr"),d=0,g=l.length;d<g;d++)A(l[d],p,m);d=0;for(g=a.aoData.length;d<g;d++)null!==a.aoData[d].nTr&&
A(a.aoData[d].nTr,p,m)}v(a.aoColumns,b,c);d=0;for(g=k;d<g;d++)a.oApi._fnColumnOptions(a,d,{});v(a.aoPreSearchCols,b,c);d=0;for(g=a.aoData.length;d<g;d++){m=a.aoData[d];if(n=m.anCells)for(v(n,b,c),l=0,p=n.length;l<p;l++)n[l]&&n[l]._DT_CellIndex&&(n[l]._DT_CellIndex.column=l);"dom"!==m.src&&Array.isArray(m._aData)&&v(m._aData,b,c)}d=0;for(g=a.aoHeader.length;d<g;d++)v(a.aoHeader[d],b,c);if(null!==a.aoFooter)for(d=0,g=a.aoFooter.length;d<g;d++)v(a.aoFooter[d],b,c);(h||h===z)&&e.fn.dataTable.Api(a).rows().invalidate();
d=0;for(g=k;d<g;d++)e(a.aoColumns[d].nTh).off(".DT"),this.oApi._fnSortAttachListener(a,a.aoColumns[d].nTh,d);e(a.oInstance).trigger("column-reorder.dt",[a,{from:b,to:c,mapping:q,drop:f,iFrom:b,iTo:c,aiInvertMapping:q}])}};var r=function(a,b){a=(new e.fn.dataTable.Api(a)).settings()[0];if(a._colReorder)return a._colReorder;!0===b&&(b={});var c=e.fn.dataTable.camelToHungarian;c&&(c(r.defaults,r.defaults,!0),c(r.defaults,b||{}));this.s={dt:null,enable:null,init:e.extend(!0,{},r.defaults,b),fixed:0,fixedRight:0,
reorderCallback:null,mouse:{startX:-1,startY:-1,offsetX:-1,offsetY:-1,target:-1,targetIndex:-1,fromIndex:-1},aoTargets:[]};this.dom={drag:null,pointer:null};this.s.enable=this.s.init.bEnable;this.s.dt=a;this.s.dt._colReorder=this;this._fnConstruct();return this};e.extend(r.prototype,{fnEnable:function(a){if(!1===a)return fnDisable();this.s.enable=!0},fnDisable:function(){this.s.enable=!1},fnReset:function(){this._fnOrderColumns(this.fnOrder());return this},fnGetCurrentOrder:function(){return this.fnOrder()},
fnOrder:function(a,b){var c=[],f,h=this.s.dt.aoColumns;if(a===z){b=0;for(f=h.length;b<f;b++)c.push(h[b]._ColReorder_iOrigCol);return c}if(b){h=this.fnOrder();b=0;for(f=a.length;b<f;b++)c.push(e.inArray(a[b],h));a=c}this._fnOrderColumns(y(a));return this},fnTranspose:function(a,b){b||(b="toCurrent");var c=this.fnOrder(),f=this.s.dt.aoColumns;return"toCurrent"===b?Array.isArray(a)?e.map(a,function(h){return e.inArray(h,c)}):e.inArray(a,c):Array.isArray(a)?e.map(a,function(h){return f[h]._ColReorder_iOrigCol}):
f[a]._ColReorder_iOrigCol},_fnConstruct:function(){var a=this,b=this.s.dt.aoColumns.length,c=this.s.dt.nTable,f;this.s.init.iFixedColumns&&(this.s.fixed=this.s.init.iFixedColumns);this.s.init.iFixedColumnsLeft&&(this.s.fixed=this.s.init.iFixedColumnsLeft);this.s.fixedRight=this.s.init.iFixedColumnsRight?this.s.init.iFixedColumnsRight:0;this.s.init.fnReorderCallback&&(this.s.reorderCallback=this.s.init.fnReorderCallback);for(f=0;f<b;f++)f>this.s.fixed-1&&f<b-this.s.fixedRight&&this._fnMouseListener(f,
this.s.dt.aoColumns[f].nTh),this.s.dt.aoColumns[f]._ColReorder_iOrigCol=f;this.s.dt.oApi._fnCallbackReg(this.s.dt,"aoStateSaveParams",function(m,k){a._fnStateSave.call(a,k)},"ColReorder_State");var h=null;this.s.init.aiOrder&&(h=this.s.init.aiOrder.slice());this.s.dt.oLoadedState&&"undefined"!=typeof this.s.dt.oLoadedState.ColReorder&&this.s.dt.oLoadedState.ColReorder.length==this.s.dt.aoColumns.length&&(h=this.s.dt.oLoadedState.ColReorder);if(h)if(a.s.dt._bInitComplete)b=y(h),a._fnOrderColumns.call(a,
b);else{var g=!1;e(c).on("draw.dt.colReorder",function(){if(!a.s.dt._bInitComplete&&!g){g=!0;var m=y(h);a._fnOrderColumns.call(a,m)}})}else this._fnSetColumnIndexes();e(c).on("destroy.dt.colReorder",function(){e(c).off("destroy.dt.colReorder draw.dt.colReorder");e.each(a.s.dt.aoColumns,function(m,k){e(k.nTh).off(".ColReorder");e(k.nTh).removeAttr("data-column-index")});a.s.dt._colReorder=null;a.s=null})},_fnOrderColumns:function(a){var b=!1;if(a.length!=this.s.dt.aoColumns.length)this.s.dt.oInstance.oApi._fnLog(this.s.dt,
1,"ColReorder - array reorder does not match known number of columns. Skipping.");else{for(var c=0,f=a.length;c<f;c++){var h=e.inArray(c,a);c!=h&&(v(a,h,c),this.s.dt.oInstance.fnColReorder(h,c,!0,!1),b=!0)}this._fnSetColumnIndexes();b&&(e.fn.dataTable.Api(this.s.dt).rows().invalidate(),""===this.s.dt.oScroll.sX&&""===this.s.dt.oScroll.sY||this.s.dt.oInstance.fnAdjustColumnSizing(!1),this.s.dt.oInstance.oApi._fnSaveState(this.s.dt),null!==this.s.reorderCallback&&this.s.reorderCallback.call(this))}},
_fnStateSave:function(a){var b,c,f=this.s.dt.aoColumns;a.ColReorder=[];if(a.aaSorting){for(b=0;b<a.aaSorting.length;b++)a.aaSorting[b][0]=f[a.aaSorting[b][0]]._ColReorder_iOrigCol;var h=e.extend(!0,[],a.aoSearchCols);b=0;for(c=f.length;b<c;b++){var g=f[b]._ColReorder_iOrigCol;a.aoSearchCols[g]=h[b];a.abVisCols[g]=f[b].bVisible;a.ColReorder.push(g)}}else if(a.order){for(b=0;b<a.order.length;b++)a.order[b][0]=f[a.order[b][0]]._ColReorder_iOrigCol;h=e.extend(!0,[],a.columns);b=0;for(c=f.length;b<c;b++)g=
f[b]._ColReorder_iOrigCol,a.columns[g]=h[b],a.ColReorder.push(g)}},_fnMouseListener:function(a,b){var c=this;e(b).on("mousedown.ColReorder",function(f){c.s.enable&&1===f.which&&c._fnMouseDown.call(c,f,b)}).on("touchstart.ColReorder",function(f){c.s.enable&&c._fnMouseDown.call(c,f,b)})},_fnMouseDown:function(a,b){var c=this,f=e(a.target).closest("th, td").offset();b=parseInt(e(b).attr("data-column-index"),10);b!==z&&(this.s.mouse.startX=this._fnCursorPosition(a,"pageX"),this.s.mouse.startY=this._fnCursorPosition(a,
"pageY"),this.s.mouse.offsetX=this._fnCursorPosition(a,"pageX")-f.left,this.s.mouse.offsetY=this._fnCursorPosition(a,"pageY")-f.top,this.s.mouse.target=this.s.dt.aoColumns[b].nTh,this.s.mouse.targetIndex=b,this.s.mouse.fromIndex=b,this._fnRegions(),e(t).on("mousemove.ColReorder touchmove.ColReorder",function(h){c._fnMouseMove.call(c,h)}).on("mouseup.ColReorder touchend.ColReorder",function(h){c._fnMouseUp.call(c,h)}))},_fnMouseMove:function(a){var b=this;if(null===this.dom.drag){if(5>Math.pow(Math.pow(this._fnCursorPosition(a,
"pageX")-this.s.mouse.startX,2)+Math.pow(this._fnCursorPosition(a,"pageY")-this.s.mouse.startY,2),.5))return;this._fnCreateDragNode()}this.dom.drag.css({left:this._fnCursorPosition(a,"pageX")-this.s.mouse.offsetX,top:this._fnCursorPosition(a,"pageY")-this.s.mouse.offsetY});var c=this.s.mouse.toIndex;a=this._fnCursorPosition(a,"pageX");for(var f=function(d){for(;0<=d;){d--;if(0>=d)return null;if(b.s.aoTargets[d+1].x!==b.s.aoTargets[d].x)return b.s.aoTargets[d]}},h=function(){for(var d=0;d<b.s.aoTargets.length-
1;d++)if(b.s.aoTargets[d].x!==b.s.aoTargets[d+1].x)return b.s.aoTargets[d]},g=function(){for(var d=b.s.aoTargets.length-1;0<d;d--)if(b.s.aoTargets[d].x!==b.s.aoTargets[d-1].x)return b.s.aoTargets[d]},m=1;m<this.s.aoTargets.length;m++){var k=f(m);k||(k=h());var p=k.x+(this.s.aoTargets[m].x-k.x)/2;if(this._fnIsLtr()){if(a<p){var l=k;break}}else if(a>p){l=k;break}}l?(this.dom.pointer.css("left",l.x),this.s.mouse.toIndex=l.to):(this.dom.pointer.css("left",g().x),this.s.mouse.toIndex=g().to);this.s.init.bRealtime&&
c!==this.s.mouse.toIndex&&(this.s.dt.oInstance.fnColReorder(this.s.mouse.fromIndex,this.s.mouse.toIndex),this.s.mouse.fromIndex=this.s.mouse.toIndex,""===this.s.dt.oScroll.sX&&""===this.s.dt.oScroll.sY||this.s.dt.oInstance.fnAdjustColumnSizing(!1),this._fnRegions())},_fnMouseUp:function(a){e(t).off(".ColReorder");null!==this.dom.drag&&(this.dom.drag.remove(),this.dom.pointer.remove(),this.dom.drag=null,this.dom.pointer=null,this.s.dt.oInstance.fnColReorder(this.s.mouse.fromIndex,this.s.mouse.toIndex,
!0),this._fnSetColumnIndexes(),""===this.s.dt.oScroll.sX&&""===this.s.dt.oScroll.sY||this.s.dt.oInstance.fnAdjustColumnSizing(!1),this.s.dt.oInstance.oApi._fnSaveState(this.s.dt),null!==this.s.reorderCallback&&this.s.reorderCallback.call(this))},_fnRegions:function(){var a=this.s.dt.aoColumns,b=this._fnIsLtr();this.s.aoTargets.splice(0,this.s.aoTargets.length);var c=e(this.s.dt.nTable).offset().left,f=[];e.each(a,function(m,k){if(k.bVisible&&"none"!==k.nTh.style.display){k=e(k.nTh);var p=k.offset().left;
b&&(p+=k.outerWidth());f.push({index:m,bound:p});c=p}else f.push({index:m,bound:c})});var h=f[0];a=e(a[h.index].nTh).outerWidth();this.s.aoTargets.push({to:0,x:h.bound-a});for(h=0;h<f.length;h++){a=f[h];var g=a.index;a.index<this.s.mouse.fromIndex&&g++;this.s.aoTargets.push({to:g,x:a.bound})}0!==this.s.fixedRight&&this.s.aoTargets.splice(this.s.aoTargets.length-this.s.fixedRight);0!==this.s.fixed&&this.s.aoTargets.splice(0,this.s.fixed)},_fnCreateDragNode:function(){var a=""!==this.s.dt.oScroll.sX||
""!==this.s.dt.oScroll.sY,b=this.s.dt.aoColumns[this.s.mouse.targetIndex].nTh,c=b.parentNode,f=c.parentNode,h=f.parentNode,g=e(b).clone();this.dom.drag=e(h.cloneNode(!1)).addClass("DTCR_clonedTable").append(e(f.cloneNode(!1)).append(e(c.cloneNode(!1)).append(g[0]))).css({position:"absolute",top:0,left:0,width:e(b).outerWidth(),height:e(b).outerHeight()}).appendTo("body");this.dom.pointer=e("<div></div>").addClass("DTCR_pointer").css({position:"absolute",top:a?e("div.dataTables_scroll",this.s.dt.nTableWrapper).offset().top:
e(this.s.dt.nTable).offset().top,height:a?e("div.dataTables_scroll",this.s.dt.nTableWrapper).height():e(this.s.dt.nTable).height()}).appendTo("body")},_fnSetColumnIndexes:function(){e.each(this.s.dt.aoColumns,function(a,b){e(b.nTh).attr("data-column-index",a)})},_fnCursorPosition:function(a,b){return-1!==a.type.indexOf("touch")?a.originalEvent.touches[0][b]:a[b]},_fnIsLtr:function(){return"rtl"!==e(this.s.dt.nTable).css("direction")}});r.defaults={aiOrder:null,bEnable:!0,bRealtime:!0,iFixedColumnsLeft:0,
iFixedColumnsRight:0,fnReorderCallback:null};r.version="1.5.3";e.fn.dataTable.ColReorder=r;e.fn.DataTable.ColReorder=r;"function"==typeof e.fn.dataTable&&"function"==typeof e.fn.dataTableExt.fnVersionCheck&&e.fn.dataTableExt.fnVersionCheck("1.10.8")?e.fn.dataTableExt.aoFeatures.push({fnInit:function(a){var b=a.oInstance;a._colReorder?b.oApi._fnLog(a,1,"ColReorder attempted to initialise twice. Ignoring second"):(b=a.oInit,new r(a,b.colReorder||b.oColReorder||{}));return null},cFeature:"R",sFeature:"ColReorder"}):
alert("Warning: ColReorder requires DataTables 1.10.8 or greater - www.datatables.net/download");e(t).on("preInit.dt.colReorder",function(a,b){if("dt"===a.namespace){a=b.oInit.colReorder;var c=D.defaults.colReorder;if(a||c)c=e.extend({},a,c),!1!==a&&new r(b,c)}});e.fn.dataTable.Api.register("colReorder.reset()",function(){return this.iterator("table",function(a){a._colReorder.fnReset()})});e.fn.dataTable.Api.register("colReorder.order()",function(a,b){return a?this.iterator("table",function(c){c._colReorder.fnOrder(a,
b)}):this.context.length?this.context[0]._colReorder.fnOrder():null});e.fn.dataTable.Api.register("colReorder.transpose()",function(a,b){return this.context.length&&this.context[0]._colReorder?this.context[0]._colReorder.fnTranspose(a,b):a});e.fn.dataTable.Api.register("colReorder.move()",function(a,b,c,f){this.context.length&&(this.context[0]._colReorder.s.dt.oInstance.fnColReorder(a,b,c,f),this.context[0]._colReorder._fnSetColumnIndexes());return this});e.fn.dataTable.Api.register("colReorder.enable()",
function(a){return this.iterator("table",function(b){b._colReorder&&b._colReorder.fnEnable(a)})});e.fn.dataTable.Api.register("colReorder.disable()",function(){return this.iterator("table",function(a){a._colReorder&&a._colReorder.fnDisable()})});return r});


/*!
 Bootstrap 4 styling wrapper for ColReorder
 ©2018 SpryMedia Ltd - datatables.net/license
*/
(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-colreorder"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);b&&b.fn.dataTable||(b=require("datatables.net-bs4")(a,b).$);b.fn.dataTable.ColReorder||require("datatables.net-colreorder")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c,a,b,d){return c.fn.dataTable});


/*!
   Copyright 2014-2021 SpryMedia Ltd.

 This source file is free software, available under the following license:
   MIT license - http://datatables.net/license/mit

 This source file is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.

 For details please refer to: http://www.datatables.net
 Responsive 2.2.7
 2014-2021 SpryMedia Ltd - datatables.net/license
*/
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(b,k,m){b instanceof String&&(b=String(b));for(var n=b.length,p=0;p<n;p++){var y=b[p];if(k.call(m,y,p,b))return{i:p,v:y}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.ISOLATE_POLYFILLS=!1;
$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(b,k,m){if(b==Array.prototype||b==Object.prototype)return b;b[k]=m.value;return b};$jscomp.getGlobal=function(b){b=["object"==typeof globalThis&&globalThis,b,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var k=0;k<b.length;++k){var m=b[k];if(m&&m.Math==Math)return m}throw Error("Cannot find global object");};$jscomp.global=$jscomp.getGlobal(this);
$jscomp.IS_SYMBOL_NATIVE="function"===typeof Symbol&&"symbol"===typeof Symbol("x");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX="$jscp$";var $jscomp$lookupPolyfilledValue=function(b,k){var m=$jscomp.propertyToPolyfillSymbol[k];if(null==m)return b[k];m=b[m];return void 0!==m?m:b[k]};
$jscomp.polyfill=function(b,k,m,n){k&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(b,k,m,n):$jscomp.polyfillUnisolated(b,k,m,n))};$jscomp.polyfillUnisolated=function(b,k,m,n){m=$jscomp.global;b=b.split(".");for(n=0;n<b.length-1;n++){var p=b[n];if(!(p in m))return;m=m[p]}b=b[b.length-1];n=m[b];k=k(n);k!=n&&null!=k&&$jscomp.defineProperty(m,b,{configurable:!0,writable:!0,value:k})};
$jscomp.polyfillIsolated=function(b,k,m,n){var p=b.split(".");b=1===p.length;n=p[0];n=!b&&n in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var y=0;y<p.length-1;y++){var z=p[y];if(!(z in n))return;n=n[z]}p=p[p.length-1];m=$jscomp.IS_SYMBOL_NATIVE&&"es6"===m?n[p]:null;k=k(m);null!=k&&(b?$jscomp.defineProperty($jscomp.polyfills,p,{configurable:!0,writable:!0,value:k}):k!==m&&($jscomp.propertyToPolyfillSymbol[p]=$jscomp.IS_SYMBOL_NATIVE?$jscomp.global.Symbol(p):$jscomp.POLYFILL_PREFIX+p,p=
$jscomp.propertyToPolyfillSymbol[p],$jscomp.defineProperty(n,p,{configurable:!0,writable:!0,value:k})))};$jscomp.polyfill("Array.prototype.find",function(b){return b?b:function(k,m){return $jscomp.findInternal(this,k,m).v}},"es6","es3");
(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(k){return b(k,window,document)}):"object"===typeof exports?module.exports=function(k,m){k||(k=window);m&&m.fn.dataTable||(m=require("datatables.net")(k,m).$);return b(m,k,k.document)}:b(jQuery,window,document)})(function(b,k,m,n){function p(a,c,d){var f=c+"-"+d;if(A[f])return A[f];var g=[];a=a.cell(c,d).node().childNodes;c=0;for(d=a.length;c<d;c++)g.push(a[c]);return A[f]=g}function y(a,c,d){var f=c+"-"+
d;if(A[f]){a=a.cell(c,d).node();d=A[f][0].parentNode.childNodes;c=[];for(var g=0,l=d.length;g<l;g++)c.push(d[g]);d=0;for(g=c.length;d<g;d++)a.appendChild(c[d]);A[f]=n}}var z=b.fn.dataTable,u=function(a,c){if(!z.versionCheck||!z.versionCheck("1.10.10"))throw"DataTables Responsive requires DataTables 1.10.10 or newer";this.s={dt:new z.Api(a),columns:[],current:[]};this.s.dt.settings()[0].responsive||(c&&"string"===typeof c.details?c.details={type:c.details}:c&&!1===c.details?c.details={type:!1}:c&&
!0===c.details&&(c.details={type:"inline"}),this.c=b.extend(!0,{},u.defaults,z.defaults.responsive,c),a.responsive=this,this._constructor())};b.extend(u.prototype,{_constructor:function(){var a=this,c=this.s.dt,d=c.settings()[0],f=b(k).innerWidth();c.settings()[0]._responsive=this;b(k).on("resize.dtr orientationchange.dtr",z.util.throttle(function(){var g=b(k).innerWidth();g!==f&&(a._resize(),f=g)}));d.oApi._fnCallbackReg(d,"aoRowCreatedCallback",function(g,l,h){-1!==b.inArray(!1,a.s.current)&&b(">td, >th",
g).each(function(e){e=c.column.index("toData",e);!1===a.s.current[e]&&b(this).css("display","none")})});c.on("destroy.dtr",function(){c.off(".dtr");b(c.table().body()).off(".dtr");b(k).off("resize.dtr orientationchange.dtr");c.cells(".dtr-control").nodes().to$().removeClass("dtr-control");b.each(a.s.current,function(g,l){!1===l&&a._setColumnVis(g,!0)})});this.c.breakpoints.sort(function(g,l){return g.width<l.width?1:g.width>l.width?-1:0});this._classLogic();this._resizeAuto();d=this.c.details;!1!==
d.type&&(a._detailsInit(),c.on("column-visibility.dtr",function(){a._timer&&clearTimeout(a._timer);a._timer=setTimeout(function(){a._timer=null;a._classLogic();a._resizeAuto();a._resize(!0);a._redrawChildren()},100)}),c.on("draw.dtr",function(){a._redrawChildren()}),b(c.table().node()).addClass("dtr-"+d.type));c.on("column-reorder.dtr",function(g,l,h){a._classLogic();a._resizeAuto();a._resize(!0)});c.on("column-sizing.dtr",function(){a._resizeAuto();a._resize()});c.on("preXhr.dtr",function(){var g=
[];c.rows().every(function(){this.child.isShown()&&g.push(this.id(!0))});c.one("draw.dtr",function(){a._resizeAuto();a._resize();c.rows(g).every(function(){a._detailsDisplay(this,!1)})})});c.on("draw.dtr",function(){a._controlClass()}).on("init.dtr",function(g,l,h){"dt"===g.namespace&&(a._resizeAuto(),a._resize(),b.inArray(!1,a.s.current)&&c.columns.adjust())});this._resize()},_columnsVisiblity:function(a){var c=this.s.dt,d=this.s.columns,f,g=d.map(function(t,v){return{columnIdx:v,priority:t.priority}}).sort(function(t,
v){return t.priority!==v.priority?t.priority-v.priority:t.columnIdx-v.columnIdx}),l=b.map(d,function(t,v){return!1===c.column(v).visible()?"not-visible":t.auto&&null===t.minWidth?!1:!0===t.auto?"-":-1!==b.inArray(a,t.includeIn)}),h=0;var e=0;for(f=l.length;e<f;e++)!0===l[e]&&(h+=d[e].minWidth);e=c.settings()[0].oScroll;e=e.sY||e.sX?e.iBarWidth:0;h=c.table().container().offsetWidth-e-h;e=0;for(f=l.length;e<f;e++)d[e].control&&(h-=d[e].minWidth);var r=!1;e=0;for(f=g.length;e<f;e++){var q=g[e].columnIdx;
"-"===l[q]&&!d[q].control&&d[q].minWidth&&(r||0>h-d[q].minWidth?(r=!0,l[q]=!1):l[q]=!0,h-=d[q].minWidth)}g=!1;e=0;for(f=d.length;e<f;e++)if(!d[e].control&&!d[e].never&&!1===l[e]){g=!0;break}e=0;for(f=d.length;e<f;e++)d[e].control&&(l[e]=g),"not-visible"===l[e]&&(l[e]=!1);-1===b.inArray(!0,l)&&(l[0]=!0);return l},_classLogic:function(){var a=this,c=this.c.breakpoints,d=this.s.dt,f=d.columns().eq(0).map(function(h){var e=this.column(h),r=e.header().className;h=d.settings()[0].aoColumns[h].responsivePriority;
e=e.header().getAttribute("data-priority");h===n&&(h=e===n||null===e?1E4:1*e);return{className:r,includeIn:[],auto:!1,control:!1,never:r.match(/\bnever\b/)?!0:!1,priority:h}}),g=function(h,e){h=f[h].includeIn;-1===b.inArray(e,h)&&h.push(e)},l=function(h,e,r,q){if(!r)f[h].includeIn.push(e);else if("max-"===r)for(q=a._find(e).width,e=0,r=c.length;e<r;e++)c[e].width<=q&&g(h,c[e].name);else if("min-"===r)for(q=a._find(e).width,e=0,r=c.length;e<r;e++)c[e].width>=q&&g(h,c[e].name);else if("not-"===r)for(e=
0,r=c.length;e<r;e++)-1===c[e].name.indexOf(q)&&g(h,c[e].name)};f.each(function(h,e){for(var r=h.className.split(" "),q=!1,t=0,v=r.length;t<v;t++){var B=r[t].trim();if("all"===B){q=!0;h.includeIn=b.map(c,function(w){return w.name});return}if("none"===B||h.never){q=!0;return}if("control"===B||"dtr-control"===B){q=!0;h.control=!0;return}b.each(c,function(w,D){w=D.name.split("-");var x=B.match(new RegExp("(min\\-|max\\-|not\\-)?("+w[0]+")(\\-[_a-zA-Z0-9])?"));x&&(q=!0,x[2]===w[0]&&x[3]==="-"+w[1]?l(e,
D.name,x[1],x[2]+x[3]):x[2]!==w[0]||x[3]||l(e,D.name,x[1],x[2]))})}q||(h.auto=!0)});this.s.columns=f},_controlClass:function(){if("inline"===this.c.details.type){var a=this.s.dt,c=b.inArray(!0,this.s.current);a.cells(null,function(d){return d!==c},{page:"current"}).nodes().to$().filter(".dtr-control").removeClass("dtr-control");a.cells(null,c,{page:"current"}).nodes().to$().addClass("dtr-control")}},_detailsDisplay:function(a,c){var d=this,f=this.s.dt,g=this.c.details;if(g&&!1!==g.type){var l=g.display(a,
c,function(){return g.renderer(f,a[0],d._detailsObj(a[0]))});!0!==l&&!1!==l||b(f.table().node()).triggerHandler("responsive-display.dt",[f,a,l,c])}},_detailsInit:function(){var a=this,c=this.s.dt,d=this.c.details;"inline"===d.type&&(d.target="td.dtr-control, th.dtr-control");c.on("draw.dtr",function(){a._tabIndexes()});a._tabIndexes();b(c.table().body()).on("keyup.dtr","td, th",function(g){13===g.keyCode&&b(this).data("dtr-keyboard")&&b(this).click()});var f=d.target;d="string"===typeof f?f:"td, th";
if(f!==n||null!==f)b(c.table().body()).on("click.dtr mousedown.dtr mouseup.dtr",d,function(g){if(b(c.table().node()).hasClass("collapsed")&&-1!==b.inArray(b(this).closest("tr").get(0),c.rows().nodes().toArray())){if("number"===typeof f){var l=0>f?c.columns().eq(0).length+f:f;if(c.cell(this).index().column!==l)return}l=c.row(b(this).closest("tr"));"click"===g.type?a._detailsDisplay(l,!1):"mousedown"===g.type?b(this).css("outline","none"):"mouseup"===g.type&&b(this).trigger("blur").css("outline","")}})},
_detailsObj:function(a){var c=this,d=this.s.dt;return b.map(this.s.columns,function(f,g){if(!f.never&&!f.control)return f=d.settings()[0].aoColumns[g],{className:f.sClass,columnIndex:g,data:d.cell(a,g).render(c.c.orthogonal),hidden:d.column(g).visible()&&!c.s.current[g],rowIndex:a,title:null!==f.sTitle?f.sTitle:b(d.column(g).header()).text()}})},_find:function(a){for(var c=this.c.breakpoints,d=0,f=c.length;d<f;d++)if(c[d].name===a)return c[d]},_redrawChildren:function(){var a=this,c=this.s.dt;c.rows({page:"current"}).iterator("row",
function(d,f){c.row(f);a._detailsDisplay(c.row(f),!0)})},_resize:function(a){var c=this,d=this.s.dt,f=b(k).innerWidth(),g=this.c.breakpoints,l=g[0].name,h=this.s.columns,e,r=this.s.current.slice();for(e=g.length-1;0<=e;e--)if(f<=g[e].width){l=g[e].name;break}var q=this._columnsVisiblity(l);this.s.current=q;g=!1;e=0;for(f=h.length;e<f;e++)if(!1===q[e]&&!h[e].never&&!h[e].control&&!1===!d.column(e).visible()){g=!0;break}b(d.table().node()).toggleClass("collapsed",g);var t=!1,v=0;d.columns().eq(0).each(function(B,
w){!0===q[w]&&v++;if(a||q[w]!==r[w])t=!0,c._setColumnVis(B,q[w])});t&&(this._redrawChildren(),b(d.table().node()).trigger("responsive-resize.dt",[d,this.s.current]),0===d.page.info().recordsDisplay&&b("td",d.table().body()).eq(0).attr("colspan",v));c._controlClass()},_resizeAuto:function(){var a=this.s.dt,c=this.s.columns;if(this.c.auto&&-1!==b.inArray(!0,b.map(c,function(e){return e.auto}))){b.isEmptyObject(A)||b.each(A,function(e){e=e.split("-");y(a,1*e[0],1*e[1])});a.table().node();var d=a.table().node().cloneNode(!1),
f=b(a.table().header().cloneNode(!1)).appendTo(d),g=b(a.table().body()).clone(!1,!1).empty().appendTo(d);d.style.width="auto";var l=a.columns().header().filter(function(e){return a.column(e).visible()}).to$().clone(!1).css("display","table-cell").css("width","auto").css("min-width",0);b(g).append(b(a.rows({page:"current"}).nodes()).clone(!1)).find("th, td").css("display","");if(g=a.table().footer()){g=b(g.cloneNode(!1)).appendTo(d);var h=a.columns().footer().filter(function(e){return a.column(e).visible()}).to$().clone(!1).css("display",
"table-cell");b("<tr/>").append(h).appendTo(g)}b("<tr/>").append(l).appendTo(f);"inline"===this.c.details.type&&b(d).addClass("dtr-inline collapsed");b(d).find("[name]").removeAttr("name");b(d).css("position","relative");d=b("<div/>").css({width:1,height:1,overflow:"hidden",clear:"both"}).append(d);d.insertBefore(a.table().node());l.each(function(e){e=a.column.index("fromVisible",e);c[e].minWidth=this.offsetWidth||0});d.remove()}},_responsiveOnlyHidden:function(){var a=this.s.dt;return b.map(this.s.current,
function(c,d){return!1===a.column(d).visible()?!0:c})},_setColumnVis:function(a,c){var d=this.s.dt;c=c?"":"none";b(d.column(a).header()).css("display",c);b(d.column(a).footer()).css("display",c);d.column(a).nodes().to$().css("display",c);b.isEmptyObject(A)||d.cells(null,a).indexes().each(function(f){y(d,f.row,f.column)})},_tabIndexes:function(){var a=this.s.dt,c=a.cells({page:"current"}).nodes().to$(),d=a.settings()[0],f=this.c.details.target;c.filter("[data-dtr-keyboard]").removeData("[data-dtr-keyboard]");
"number"===typeof f?a.cells(null,f,{page:"current"}).nodes().to$().attr("tabIndex",d.iTabIndex).data("dtr-keyboard",1):("td:first-child, th:first-child"===f&&(f=">td:first-child, >th:first-child"),b(f,a.rows({page:"current"}).nodes()).attr("tabIndex",d.iTabIndex).data("dtr-keyboard",1))}});u.breakpoints=[{name:"desktop",width:Infinity},{name:"tablet-l",width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}];u.display={childRow:function(a,c,d){if(c){if(b(a.node()).hasClass("parent"))return a.child(d(),
"child").show(),!0}else{if(a.child.isShown())return a.child(!1),b(a.node()).removeClass("parent"),!1;a.child(d(),"child").show();b(a.node()).addClass("parent");return!0}},childRowImmediate:function(a,c,d){if(!c&&a.child.isShown()||!a.responsive.hasHidden())return a.child(!1),b(a.node()).removeClass("parent"),!1;a.child(d(),"child").show();b(a.node()).addClass("parent");return!0},modal:function(a){return function(c,d,f){if(d)b("div.dtr-modal-content").empty().append(f());else{var g=function(){l.remove();
b(m).off("keypress.dtr")},l=b('<div class="dtr-modal"/>').append(b('<div class="dtr-modal-display"/>').append(b('<div class="dtr-modal-content"/>').append(f())).append(b('<div class="dtr-modal-close">&times;</div>').click(function(){g()}))).append(b('<div class="dtr-modal-background"/>').click(function(){g()})).appendTo("body");b(m).on("keyup.dtr",function(h){27===h.keyCode&&(h.stopPropagation(),g())})}a&&a.header&&b("div.dtr-modal-content").prepend("<h2>"+a.header(c)+"</h2>")}}};var A={};u.renderer=
{listHiddenNodes:function(){return function(a,c,d){var f=b('<ul data-dtr-index="'+c+'" class="dtr-details"/>'),g=!1;b.each(d,function(l,h){h.hidden&&(b("<li "+(h.className?'class="'+h.className+'"':"")+' data-dtr-index="'+h.columnIndex+'" data-dt-row="'+h.rowIndex+'" data-dt-column="'+h.columnIndex+'"><span class="dtr-title">'+h.title+"</span> </li>").append(b('<span class="dtr-data"/>').append(p(a,h.rowIndex,h.columnIndex))).appendTo(f),g=!0)});return g?f:!1}},listHidden:function(){return function(a,
c,d){return(a=b.map(d,function(f){var g=f.className?'class="'+f.className+'"':"";return f.hidden?"<li "+g+' data-dtr-index="'+f.columnIndex+'" data-dt-row="'+f.rowIndex+'" data-dt-column="'+f.columnIndex+'"><span class="dtr-title">'+f.title+'</span> <span class="dtr-data">'+f.data+"</span></li>":""}).join(""))?b('<ul data-dtr-index="'+c+'" class="dtr-details"/>').append(a):!1}},tableAll:function(a){a=b.extend({tableClass:""},a);return function(c,d,f){c=b.map(f,function(g){return"<tr "+(g.className?
'class="'+g.className+'"':"")+' data-dt-row="'+g.rowIndex+'" data-dt-column="'+g.columnIndex+'"><td>'+g.title+":</td> <td>"+g.data+"</td></tr>"}).join("");return b('<table class="'+a.tableClass+' dtr-details" width="100%"/>').append(c)}}};u.defaults={breakpoints:u.breakpoints,auto:!0,details:{display:u.display.childRow,renderer:u.renderer.listHidden(),target:0,type:"inline"},orthogonal:"display"};var C=b.fn.dataTable.Api;C.register("responsive()",function(){return this});C.register("responsive.index()",
function(a){a=b(a);return{column:a.data("dtr-index"),row:a.parent().data("dtr-index")}});C.register("responsive.rebuild()",function(){return this.iterator("table",function(a){a._responsive&&a._responsive._classLogic()})});C.register("responsive.recalc()",function(){return this.iterator("table",function(a){a._responsive&&(a._responsive._resizeAuto(),a._responsive._resize())})});C.register("responsive.hasHidden()",function(){var a=this.context[0];return a._responsive?-1!==b.inArray(!1,a._responsive._responsiveOnlyHidden()):
!1});C.registerPlural("columns().responsiveHidden()","column().responsiveHidden()",function(){return this.iterator("column",function(a,c){return a._responsive?a._responsive._responsiveOnlyHidden()[c]:!1},1)});u.version="2.2.7";b.fn.dataTable.Responsive=u;b.fn.DataTable.Responsive=u;b(m).on("preInit.dt.dtr",function(a,c,d){"dt"===a.namespace&&(b(c.nTable).hasClass("responsive")||b(c.nTable).hasClass("dt-responsive")||c.oInit.responsive||z.defaults.responsive)&&(a=c.oInit.responsive,!1!==a&&new u(c,
b.isPlainObject(a)?a:{}))});return u});


/*!
 Bootstrap 4 integration for DataTables' Responsive
 ©2016 SpryMedia Ltd - datatables.net/license
*/
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var e=a.length,d=0;d<e;d++){var f=a[d];if(b.call(c,f,d,a))return{i:d,v:f}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.ISOLATE_POLYFILLS=!1;
$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};$jscomp.getGlobal=function(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");};$jscomp.global=$jscomp.getGlobal(this);
$jscomp.IS_SYMBOL_NATIVE="function"===typeof Symbol&&"symbol"===typeof Symbol("x");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX="$jscp$";var $jscomp$lookupPolyfilledValue=function(a,b){var c=$jscomp.propertyToPolyfillSymbol[b];if(null==c)return a[b];c=a[c];return void 0!==c?c:a[b]};
$jscomp.polyfill=function(a,b,c,e){b&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(a,b,c,e):$jscomp.polyfillUnisolated(a,b,c,e))};$jscomp.polyfillUnisolated=function(a,b,c,e){c=$jscomp.global;a=a.split(".");for(e=0;e<a.length-1;e++){var d=a[e];if(!(d in c))return;c=c[d]}a=a[a.length-1];e=c[a];b=b(e);b!=e&&null!=b&&$jscomp.defineProperty(c,a,{configurable:!0,writable:!0,value:b})};
$jscomp.polyfillIsolated=function(a,b,c,e){var d=a.split(".");a=1===d.length;e=d[0];e=!a&&e in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var f=0;f<d.length-1;f++){var g=d[f];if(!(g in e))return;e=e[g]}d=d[d.length-1];c=$jscomp.IS_SYMBOL_NATIVE&&"es6"===c?e[d]:null;b=b(c);null!=b&&(a?$jscomp.defineProperty($jscomp.polyfills,d,{configurable:!0,writable:!0,value:b}):b!==c&&($jscomp.propertyToPolyfillSymbol[d]=$jscomp.IS_SYMBOL_NATIVE?$jscomp.global.Symbol(d):$jscomp.POLYFILL_PREFIX+d,d=
$jscomp.propertyToPolyfillSymbol[d],$jscomp.defineProperty(e,d,{configurable:!0,writable:!0,value:b})))};$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(b,c){return $jscomp.findInternal(this,b,c).v}},"es6","es3");
(function(a){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-responsive"],function(b){return a(b,window,document)}):"object"===typeof exports?module.exports=function(b,c){b||(b=window);c&&c.fn.dataTable||(c=require("datatables.net-bs4")(b,c).$);c.fn.dataTable.Responsive||require("datatables.net-responsive")(b,c);return a(c,b,b.document)}:a(jQuery,window,document)})(function(a,b,c,e){b=a.fn.dataTable;c=b.Responsive.display;var d=c.modal,f=a('<div class="modal fade dtr-bs-modal" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button></div><div class="modal-body"/></div></div></div>');
c.modal=function(g){return function(k,h,l){if(!a.fn.modal)d(k,h,l);else if(!h){if(g&&g.header){h=f.find("div.modal-header");var m=h.find("button").detach();h.empty().append('<h4 class="modal-title">'+g.header(k)+"</h4>").append(m)}f.find("div.modal-body").empty().append(l());f.appendTo("body").modal()}}};return b.Responsive});


/*!
   Copyright 2015-2020 SpryMedia Ltd.

 This source file is free software, available under the following license:
   MIT license - http://datatables.net/license/mit

 This source file is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.

 For details please refer to: http://www.datatables.net
 RowReorder 1.2.7
 2015-2020 SpryMedia Ltd - datatables.net/license
*/
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,f,d){a instanceof String&&(a=String(a));for(var k=a.length,g=0;g<k;g++){var h=a[g];if(f.call(d,h,g,a))return{i:g,v:h}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;
$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,f,d){a!=Array.prototype&&a!=Object.prototype&&(a[f]=d.value)};$jscomp.getGlobal=function(a){a=["object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global,a];for(var f=0;f<a.length;++f){var d=a[f];if(d&&d.Math==Math)return d}throw Error("Cannot find global object");};$jscomp.global=$jscomp.getGlobal(this);
$jscomp.polyfill=function(a,f,d,k){if(f){d=$jscomp.global;a=a.split(".");for(k=0;k<a.length-1;k++){var g=a[k];g in d||(d[g]={});d=d[g]}a=a[a.length-1];k=d[a];f=f(k);f!=k&&null!=f&&$jscomp.defineProperty(d,a,{configurable:!0,writable:!0,value:f})}};$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,d){return $jscomp.findInternal(this,a,d).v}},"es6","es3");
(function(a){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(f){return a(f,window,document)}):"object"===typeof exports?module.exports=function(f,d){f||(f=window);d&&d.fn.dataTable||(d=require("datatables.net")(f,d).$);return a(d,f,f.document)}:a(jQuery,window,document)})(function(a,f,d,k){var g=a.fn.dataTable,h=function(b,e){if(!g.versionCheck||!g.versionCheck("1.10.8"))throw"DataTables RowReorder requires DataTables 1.10.8 or newer";this.c=a.extend(!0,{},g.defaults.rowReorder,
h.defaults,e);this.s={bodyTop:null,dt:new g.Api(b),getDataFn:g.ext.oApi._fnGetObjectDataFn(this.c.dataSrc),middles:null,scroll:{},scrollInterval:null,setDataFn:g.ext.oApi._fnSetObjectDataFn(this.c.dataSrc),start:{top:0,left:0,offsetTop:0,offsetLeft:0,nodes:[]},windowHeight:0,documentOuterHeight:0,domCloneOuterHeight:0};this.dom={clone:null,dtScroll:a("div.dataTables_scrollBody",this.s.dt.table().container())};b=this.s.dt.settings()[0];if(e=b.rowreorder)return e;this.dom.dtScroll.length||(this.dom.dtScroll=
a(this.s.dt.table().container(),"tbody"));b.rowreorder=this;this._constructor()};a.extend(h.prototype,{_constructor:function(){var b=this,e=this.s.dt,c=a(e.table().node());"static"===c.css("position")&&c.css("position","relative");a(e.table().container()).on("mousedown.rowReorder touchstart.rowReorder",this.c.selector,function(c){if(b.c.enable){if(a(c.target).is(b.c.excludedChildren))return!0;var d=a(this).closest("tr"),f=e.row(d);if(f.any())return b._emitEvent("pre-row-reorder",{node:f.node(),index:f.index()}),
b._mouseDown(c,d),!1}});e.on("destroy.rowReorder",function(){a(e.table().container()).off(".rowReorder");e.off(".rowReorder")})},_cachePositions:function(){var b=this.s.dt,e=a(b.table().node()).find("thead").outerHeight(),c=a.unique(b.rows({page:"current"}).nodes().toArray());c=a.map(c,function(b,c){c=a(b).position().top-e;return(c+c+a(b).outerHeight())/2});this.s.middles=c;this.s.bodyTop=a(b.table().body()).offset().top;this.s.windowHeight=a(f).height();this.s.documentOuterHeight=a(d).outerHeight()},
_clone:function(b){var e=a(this.s.dt.table().node().cloneNode(!1)).addClass("dt-rowReorder-float").append("<tbody/>").append(b.clone(!1)),c=b.outerWidth(),d=b.outerHeight(),f=b.children().map(function(){return a(this).width()});e.width(c).height(d).find("tr").children().each(function(a){this.style.width=f[a]+"px"});e.appendTo("body");this.dom.clone=e;this.s.domCloneOuterHeight=e.outerHeight()},_clonePosition:function(a){var b=this.s.start,c=this._eventToPage(a,"Y")-b.top;a=this._eventToPage(a,"X")-
b.left;var d=this.c.snapX;c+=b.offsetTop;b=!0===d?b.offsetLeft:"number"===typeof d?b.offsetLeft+d:a+b.offsetLeft;0>c?c=0:c+this.s.domCloneOuterHeight>this.s.documentOuterHeight&&(c=this.s.documentOuterHeight-this.s.domCloneOuterHeight);this.dom.clone.css({top:c,left:b})},_emitEvent:function(b,e){this.s.dt.iterator("table",function(c,d){a(c.nTable).triggerHandler(b+".dt",e)})},_eventToPage:function(a,e){return-1!==a.type.indexOf("touch")?a.originalEvent.touches[0]["page"+e]:a["page"+e]},_mouseDown:function(b,
e){var c=this,w=this.s.dt,g=this.s.start,n=e.offset();g.top=this._eventToPage(b,"Y");g.left=this._eventToPage(b,"X");g.offsetTop=n.top;g.offsetLeft=n.left;g.nodes=a.unique(w.rows({page:"current"}).nodes().toArray());this._cachePositions();this._clone(e);this._clonePosition(b);this.dom.target=e;e.addClass("dt-rowReorder-moving");a(d).on("mouseup.rowReorder touchend.rowReorder",function(a){c._mouseUp(a)}).on("mousemove.rowReorder touchmove.rowReorder",function(a){c._mouseMove(a)});a(f).width()===a(d).width()&&
a(d.body).addClass("dt-rowReorder-noOverflow");b=this.dom.dtScroll;this.s.scroll={windowHeight:a(f).height(),windowWidth:a(f).width(),dtTop:b.length?b.offset().top:null,dtLeft:b.length?b.offset().left:null,dtHeight:b.length?b.outerHeight():null,dtWidth:b.length?b.outerWidth():null}},_mouseMove:function(b){this._clonePosition(b);for(var e=this._eventToPage(b,"Y")-this.s.bodyTop,c=this.s.middles,d=null,f=this.s.dt,g=0,m=c.length;g<m;g++)if(e<c[g]){d=g;break}null===d&&(d=c.length);if(null===this.s.lastInsert||
this.s.lastInsert!==d)e=a.unique(f.rows({page:"current"}).nodes().toArray()),d>this.s.lastInsert?this.dom.target.insertAfter(e[d-1]):this.dom.target.insertBefore(e[d]),this._cachePositions(),this.s.lastInsert=d;this._shiftScroll(b)},_mouseUp:function(b){var e=this,c=this.s.dt,f,g=this.c.dataSrc;this.dom.clone.remove();this.dom.clone=null;this.dom.target.removeClass("dt-rowReorder-moving");a(d).off(".rowReorder");a(d.body).removeClass("dt-rowReorder-noOverflow");clearInterval(this.s.scrollInterval);
this.s.scrollInterval=null;var n=this.s.start.nodes,m=a.unique(c.rows({page:"current"}).nodes().toArray()),k={},h=[],p=[],q=this.s.getDataFn,x=this.s.setDataFn;var l=0;for(f=n.length;l<f;l++)if(n[l]!==m[l]){var r=c.row(m[l]).id(),y=c.row(m[l]).data(),t=c.row(n[l]).data();r&&(k[r]=q(t));h.push({node:m[l],oldData:q(y),newData:q(t),newPosition:l,oldPosition:a.inArray(m[l],n)});p.push(m[l])}var u=[h,{dataSrc:g,nodes:p,values:k,triggerRow:c.row(this.dom.target),originalEvent:b}];this._emitEvent("row-reorder",
u);var v=function(){if(e.c.update){l=0;for(f=h.length;l<f;l++){var a=c.row(h[l].node).data();x(a,h[l].newData);c.columns().every(function(){this.dataSrc()===g&&c.cell(h[l].node,this.index()).invalidate("data")})}e._emitEvent("row-reordered",u);c.draw(!1)}};this.c.editor?(this.c.enable=!1,this.c.editor.edit(p,!1,a.extend({submit:"changed"},this.c.formOptions)).multiSet(g,k).one("preSubmitCancelled.rowReorder",function(){e.c.enable=!0;e.c.editor.off(".rowReorder");c.draw(!1)}).one("submitUnsuccessful.rowReorder",
function(){c.draw(!1)}).one("submitSuccess.rowReorder",function(){v()}).one("submitComplete",function(){e.c.enable=!0;e.c.editor.off(".rowReorder")}).submit()):v()},_shiftScroll:function(b){var e=this,c=this.s.scroll,g=!1,h=b.pageY-d.body.scrollTop,k,m;h<a(f).scrollTop()+65?k=-5:h>c.windowHeight+a(f).scrollTop()-65&&(k=5);null!==c.dtTop&&b.pageY<c.dtTop+65?m=-5:null!==c.dtTop&&b.pageY>c.dtTop+c.dtHeight-65&&(m=5);k||m?(c.windowVert=k,c.dtVert=m,g=!0):this.s.scrollInterval&&(clearInterval(this.s.scrollInterval),
this.s.scrollInterval=null);!this.s.scrollInterval&&g&&(this.s.scrollInterval=setInterval(function(){if(c.windowVert){var b=a(d).scrollTop();a(d).scrollTop(b+c.windowVert);b!==a(d).scrollTop()&&(b=parseFloat(e.dom.clone.css("top")),e.dom.clone.css("top",b+c.windowVert))}c.dtVert&&(b=e.dom.dtScroll[0],c.dtVert&&(b.scrollTop+=c.dtVert))},20))}});h.defaults={dataSrc:0,editor:null,enable:!0,formOptions:{},selector:"td:first-child",snapX:!1,update:!0,excludedChildren:"a"};var p=a.fn.dataTable.Api;p.register("rowReorder()",
function(){return this});p.register("rowReorder.enable()",function(a){a===k&&(a=!0);return this.iterator("table",function(b){b.rowreorder&&(b.rowreorder.c.enable=a)})});p.register("rowReorder.disable()",function(){return this.iterator("table",function(a){a.rowreorder&&(a.rowreorder.c.enable=!1)})});h.version="1.2.6";a.fn.dataTable.RowReorder=h;a.fn.DataTable.RowReorder=h;a(d).on("init.dt.dtr",function(b,d,c){"dt"===b.namespace&&(b=d.oInit.rowReorder,c=g.defaults.rowReorder,b||c)&&(c=a.extend({},b,
c),!1!==b&&new h(d,c))});return h});


/*!
 Bootstrap 4 styling wrapper for RowReorder
 ©2018 SpryMedia Ltd - datatables.net/license
*/
(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-rowreorder"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);b&&b.fn.dataTable||(b=require("datatables.net-bs4")(a,b).$);b.fn.dataTable.RowReorder||require("datatables.net-rowreorder")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c,a,b,d){return c.fn.dataTable});