AAY;EACZ,wCAAwC;;EAExC,eAAe;EACf,oCAAoC;AACtC;;AAEA;;EAEE,6CAA6C;;EAE7C,kDAAkD;AACpD;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;;EAElB,qBAAqB;;EAErB,2BAAgC;;EAEhC,iBAA4B;;EAE5B,mBAAmB;AACrB;;AAEA;;EAEE,kBAAkB;;EAElB,aAAa;EACb,oDAAoD;AACtD;;AAEA;;;;EAME,gBAAgB;;EAEhB,wDAAwD;AAC1D;;AAEA;EACE,qHAAqH;;EAErH,8BAA8B;;EAE9B,gBAAiB;EACjB,iBAA4B;;EAE5B,yBAAyB;EACzB,4BAA4B;AA6B9B;;AA3BE;IACE,kBAAkB;IAClB,WAAW;IACX,MAAM;IACN,OAAO;;IAEP,sBAAsB;IACtB,WAAW;IACX,YAAY;;IAEZ,WAAW;IACX,sCAAsC;IACtC,qBAAqB;;IAErB,YAAY;EACd;;AAEA;;IAEE,oGAAoG;EACtG;;AAEA;IACE;;yDAEqD;EACvD;;AAGF;AAEA;;AAEA;;EAEE,oBAAoB;;EAEpB,iCAAiC;EACjC,uDAAuD;AACzD;;AAEA;EACE,kBAAkB;EAClB,UAAU;EACV,QAAQ;EACR,QAAQ;;EAER,YAAY;EACZ,cAAyB;;EAEzB,iBAA2B;AAC7B;;AAEA;EACE,uCAAuC;AACzC;;AAEA;EACE,iBAAiB;;EAEjB,uCAAuC;AAKzC;;AAHE;IACE,oBAAoB;EACtB;;AAGF;EACE,qBAAqB;EACrB,gBAAgB;;EAEhB,sBAAsB;EACtB,WAAiB;EACjB,YAAkB;EAClB,iBAA4B;EAC5B,iBAA2B;;EAE3B,mBAAmB;;EAEnB,iDAAiD;EACjD,oDAAoD;AACtD;;AAEA;EACE,eAAyB;EACzB,gBAA0B;;EAE1B,iBAA4B;;EAE5B,sBAAsB;AACxB;;AAEA;EACE,WAAiB;;EAEjB,kBAAkB;;EAElB,sBAAmB;;KAAnB,mBAAmB;EACnB,0BAAuB;KAAvB,uBAAuB;AACzB",sourcesContent:[null,'@import "../global/variables.css";\n\n@value unit from "../global/global.css";\n@value max-height: 20px;\n\n.tag {\n  composes: resetButton from "../global/global.css";\n\n  position: relative;\n  z-index: 1;\n\n  display: inline-flex;\n\n  box-sizing: border-box;\n  max-width: 100%;\n  height: max-height;\n\n  padding: 0 unit;\n\n  cursor: pointer;\n\n  vertical-align: top;\n\n  color: var(--ring-text-color);\n\n  border: none;\n  border-radius: var(--ring-border-radius);\n\n  font-size: 12px;\n  line-height: var(--ring-line-height);\n}\n\n.tag,\n.tagAngled::before {\n  transition: background-color var(--ring-ease);\n\n  background-color: var(--ring-tag-background-color);\n}\n\n.withRemove {\n  padding-right: 22px;\n}\n\n.container {\n  position: relative;\n\n  display: inline-block;\n\n  max-width: calc(100% - unit / 2);\n\n  margin-right: calc(unit / 2);\n\n  white-space: nowrap;\n}\n\n.focused,\n.tag:focus-visible {\n  position: relative;\n\n  outline: none;\n  box-shadow: 0 0 0 2px var(--ring-border-ho


..
"|cff999999(Ordre d'exécution : Système)|r\n\n"..
"|cffff0000Clic droit pour supprimer NAME|r\n"..
"|cff999999(Ordre d'exécution : Système)|r";

-- UNITÉS --

MultiBot.tips.units.master =
"Contrôle des unités\n|cffffffff"..
"Dans ce contrôle, vous trouverez les Playerbots.\n"..
"Chaque bouton représente un de vos personnages, membres de guilde ou amis.\n"..
"L'ordre d'exécution montre les destinataires des commandes.|r\n\n"..
"|cffff0000Clic gauche pour afficher ou masquer les unités|r\n"..
"|cff999999(Ordre d'exécution : Système)|r\n\n"..
"|cffff0000Clic droit pour actualiser la liste|r\n"..
"|cff999999(Ordre d'exécution : Système)|r";

-- UNITÉS : FILTRE --

MultiBot.tips.units.filter =
"Filtre de classe\n|cffffffff"..
"Avec le filtre de classe, vous pouvez filtrer les unités par classe.|r\n\n"..
"|cffff0000Clic gauche pour afficher ou masquer les options|r\n"..
"|cff999999(Ordre d'exécution : Système)|r\n\n"..
"|cffff0000Clic droit pour réinitialiser le filtre|r\n"..
"|cff999999(Ordre d'exécution : Système)|r";

MultiBot.tips.units.deathknight =
"Filtre de classe\n|cffffffff"..
"Filtre les chevaliers de la mort.|r\n\n"..
"|cffff0000Clic gauche pour filtrer les chevaliers de la mort|r\n"..
"|cff999999(Ordre d'exécution : Système)|r";

MultiBot.tips.units.druid =
"Filtre de classe\n|cffffffff"..
"Filtre les druides.|r\n\n"..
"|cffff0000Clic gauche pour filtrer les druides|r\n"..
"|cff999999(Ordre d'exécution : Système)|r";

MultiBot.tips.units.hunter =
"Filtre de classe\n|cffffffff"..
"Filtre les chasseurs.|r\n\n"..
"|cffff0000Clic gauche pour filtrer les chasseurs|r\n"..
"|cff999999(Ordre d'exécution : Système)|r";

MultiBot.tips.units.mage =
"Filtre de classe\n|cffffffff"..
"Filtre les mages.|r\n\n"..
"|cffff0000Clic gauche pour filtrer les mages|r\n"..
"|cff999999(Ordre d'exécution : Système)|r";

MultiBot.tips.units.paladin =
"Filtre de classe\n|cffffffff"..
"Filtre les paladins.|r\n\n"..
"|cffff0000Clic gauche pour filtrer les paladins|r\n"..
"|cff999999(Ordre d'exécution : Système)|r";

MultiBot.tips.units.priest =
"Filtre de classe\n|cffffffff"..
"Filtre les prêtres.|r\n\n"..
"|cffff0000Clic gauche pour filtrer les prêtres|r\n"..
"|cff999999(Ordre d'exécution : Système)|r";

MultiBot.tips.units.rogue =
"Filtre de cla


   background-repeat: no-repeat;
      background-position: 50%;
      display: block;
      opacity: .3;
      background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjMuMDEzIDBBMTkuMjQgMTkuMjQgMCAwIDAgMTIgMy43NSAxOS4yMzYgMTkuMjM2IDAgMCAwIC45ODcgMEgwdjE5LjU3MmguOTg3YzMuMTA0LjAxNSA2LjE0My44ODggOC43ODIgMi41MjEuNDc2LjM1Mi45MjcuNzM2IDEuMzUgMS4xNDhsLjgzMS43NTloLjFsLjgzNS0uNzVjLjQyNC0uNDEzLjg3NS0uNzk3IDEuMzUtMS4xNDlhMTYuODUzIDE2Ljg1MyAwIDAgMSA4Ljc4NC0yLjUySDI0VjBoLS45ODd6TTEwLjUgMTkuNUExNC41NjUgMTQuNTY1IDAgMCAwIDMgMTYuOFYzYzQuMTc1LjMxNSA2LjAyMSAxLjU0NSA3LjUgM3YxMy41ek0yMSAxNi44Yy0yLjcwMi4xODUtNS4zIDEuMTItNy41IDIuN1Y2YzEuNDc3LTEuNDU1IDMuMzI1LTIuNjg1IDcuNS0zdjEzLjh6IiBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIC8+PC9zdmc+);
      background-size: 24px 24px
    }

    .wt-sky-toolbar__button-dictionary-wrap {
      position: relative
    }

    .wt-sky-toolbar__button-dictionary:hover {
      opacity: .8
    }

    .wt-sky-toolbar__button-dictionary-badge {
      height: 18px;
      border-radius: 9px;
      background-color: #fc6e51;
      font-family: Open Sans, sans-serif;
      line-height: 1.5;
      font-size: 12px;
      font-weight: 700;
      text-align: center;
      color: #fff;
      position: absolute;
      display: inline-block;
      padding-left: 6px;
      padding-right: 6px;
      right: -3px;
      top: -3px;
      cursor: pointer
    }

    .wt-sky-toolbar__button-dictionary-wrap:hover .wt-sky-toolbar__button-dictionary {
      opacity: 1
    }

    .wt-sky-toolbar__hint .wt-sky-hint__content {
      padding: 3px 7px 4px;
      font-size: 15px
    }

    .wt-sky-toolbar--moving,
    .wt-sky-toolbar--moving:hover {
      background-color: #5d9cec;
      box-shadow: 0 0 7px 2px #4a89dc;
      opacity: .6
    }
  </style>
  <link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600&subset=cyrillic" rel="stylesheet" id="wt-sky-css--725574360">
  <style type="text/css">
    .wt-sky-reading-list-page {
      text-rendering: optimizeLegibility;


n this.pushToken(r),!1}this.countExpansion(1);var a=i.tokens,s=this.consumeArgs(i.numArgs,i.delimiters);if(i.numArgs){a=a.slice();for(var l=a.length-1;l>=0;--l){var u=a[l];if(u.text==="#"){if(l===0)throw new ut("Incomplete placeholder at end of macro body",u);if(u=a[--l],u.text==="#")a.splice(l+1,1);else if(/^[1-9]$/.test(u.text))a.splice(l,2,...s[+u.text-1]);else throw new ut("Not a valid argument number",u)}}}return this.pushTokens(a),a.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new Co(e)]):void 0}expandTokens(e){var r=[],n=this.stack.length;for(this.pushTokens(e);this.stack.length>n;)if(this.expandOnce(!0)===!1){var i=this.stack.pop();i.treatAsRelax&&(i.noexpand=!1,i.treatAsRelax=!1),r.push(i)}return this.countExpansion(r.length),r}expandMacroAsText(e){var r=this.expandMacro(e);return r&&r.map(n=>n.text).join("")}_getExpansion(e){var r=this.macros.get(e);if(r==null)return r;if(e.length===1){var n=this.lexer.catcodes[e];if(n!=null&&n!==13)return}var i=typeof r=="function"?r(this):r;if(typeof i=="string"){var a=0;if(i.indexOf("#")!==-1)for(var s=i.replace(/##/g,"");s.indexOf("#"+(a+1))!==-1;)++a;for(var l=new m4(i,this.settings),u=[],h=l.lex();h.text!=="EOF";)u.push(h),h=l.lex();u.reverse();var f={tokens:u,numArgs:a};return f}return i}isDefined(e){return this.macros.has(e)||oh.hasOwnProperty(e)||En.math.hasOwnProperty(e)||En.text.hasOwnProperty(e)||_$.hasOwnProperty(e)}isExpandable(e){var r=this.macros.get(e);return r!=null?typeof r=="string"||typeof r=="function"||!r.unexpandable:oh.hasOwnProperty(e)&&!oh[e].primitive}},IG=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,s4=Object.freeze({"\u208A":"+","\u208B":"-","\u208C":"=","\u208D":"(","\u208E":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1D62":"i","\u2C7C":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209A":"p","\u1D63":"r","\u209B":"s","\u209C":"t","\u1D64":"u","\u1D65":"v","\u2093":"x","\u1D66":"\u03B2


e.Unused);
        Add(ParMode.NoBinding);
        Add(ParMode.DpopHeader);
        Add(ParMode.DpopJktParameter);
        Add(ParMode.Both);
    }
}


/*
 * qos_monitoring_data.h
 *
 * Contains QoS monitoring related control information.
 */

#ifndef _OpenAPI_qos_monitoring_data_H_
#define _OpenAPI_qos_monitoring_data_H_

#include <string.h>
#include "../external/cJSON.h"
#include "../include/list.h"
#include "../include/keyValuePair.h"
#include "../include/binary.h"
#include "reporting_frequency.h"
#include "requested_qos_monitoring_parameter.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef struct OpenAPI_qos_monitoring_data_s OpenAPI_qos_monitoring_data_t;
typedef struct OpenAPI_qos_monitoring_data_s {
    char *qm_id;
    OpenAPI_list_t *req_qos_mon_params;
    OpenAPI_list_t *rep_freqs;
    bool is_rep_thresh_dl_null;
    bool is_rep_thresh_dl;
    int rep_thresh_dl;
    bool is_rep_thresh_ul_null;
    bool is_rep_thresh_ul;
    int rep_thresh_ul;
    bool is_rep_thresh_rp_null;
    bool is_rep_thresh_rp;
    int rep_thresh_rp;
    bool is_wait_time_null;
    bool is_wait_time;
    int wait_time;
    bool is_rep_period_null;
    bool is_rep_period;
    int rep_period;
    bool is_notify_uri_null;
    char *notify_uri;
    bool is_notify_corre_id_null;
    char *notify_corre_id;
    bool is_direct_notif_ind;
    int direct_notif_ind;
} OpenAPI_qos_monitoring_data_t;

OpenAPI_qos_monitoring_data_t *OpenAPI_qos_monitoring_data_create(
    char *qm_id,
    OpenAPI_list_t *req_qos_mon_params,
    OpenAPI_list_t *rep_freqs,
    bool is_rep_thresh_dl_null,
    bool is_rep_thresh_dl,
    int rep_thresh_dl,
    bool is_rep_thresh_ul_null,
    bool is_rep_thresh_ul,
    int rep_thresh_ul,
    bool is_rep_thresh_rp_null,
    bool is_rep_thresh_rp,
    int rep_thresh_rp,
    bool is_wait_time_null,
    bool is_wait_time,
    int wait_time,
    bool is_rep_period_null,
    bool is_rep_period,
    int rep_period,
    bool is_notify_uri_null,
    char *notify_uri,
    bool is_notify_corre_id_null,
    char *notify_corre_id,
    bool is_direct_notif_ind,
    int direct_notif_ind
);
void OpenAPI_qos_monitoring_data_free(OpenAPI_qos_monitoring_data_t *qos_monitoring_data);
OpenAPI_qos_monitoring_data_t *OpenAPI_qos_monitoring_data_parseFromJSON(cJSON *qos_monitoring_dataJSON);
cJSON *OpenAPI_qos_monitoring_data_convertToJSON(OpenAPI_qos_monitoring_data_t *qos_monitoring_data);
OpenAPI_qos_monitoring_data_t *OpenAPI_qos_monitoring_data_copy(OpenAPI_qos_monitoring_data_t *dst, OpenAPI_qos_monitoring_data_t *src);

#ifdef __cplusplus
}
#endif

#endif /* _OpenAPI_qos_monitoring_data_H_ */


  { "丰" , "feng" , "f" },
            { "巢" , "chao" , "c" },
            { "关" , "guan" , "g" },
            { "蒯" , "kuai" , "k" },
            { "相" , "xiang" , "x" },
            { "查" , "zha" , "z" },
            { "后" , "hou" , "h" },
            { "荆" , "jing" , "j" },
            { "红" , "hong" , "h" },
            { "游" , "you" , "y" },
            { "竺" , "zhu" , "z" },
            { "权" , "quan" , "q" },
            { "逯" , "lu" , "l" },
            { "盖" , "gai" , "g" },
            { "益" , "yi" , "y" },
            { "桓" , "huan" , "h" },
            { "公" , "gong" , "g" },
            { "万俟" , "moqi" , "mq" },
            { "司马" , "sima" , "sm" },
            { "上官" , "shangguan" , "sg" },
            { "欧阳" , "ouyang" , "oy" },
            { "夏侯" , "xiahou" , "xh" },
            { "诸葛" , "zhuge" , "zg" },
            { "闻人" , "wenren" , "wr" },
            { "东方" , "dongfang" , "df" },
            { "赫连" , "helian" , "hl" },
            { "皇甫" , "huangpu" , "hf" },
            { "尉迟" , "yuchi" , "yc" },
            { "公羊" , "gongyang" , "gy" },
            { "澹台" , "tantai" , "tt" },
            { "公冶" , "gongye" , "gy" },
            { "宗政" , "zongzheng" , "zz" },
            { "濮阳" , "puyang" , "py" },
            { "淳于" , "chunyu" , "cy" },
            { "单于" , "chanyu" , "cy" },
            { "太叔" , "taishu" , "ts" },
            { "申屠" , "shentu" , "st" },
            { "公孙" , "gongsun" , "gs" },
            { "仲孙" , "zhongsun" , "zs" },
            { "轩辕" , "xuanyuan" , "xy" },
            { "令狐" , "linghu" , "lh" },
            { "钟离" , "zhongli" , "zl" },
            { "宇文" , "yuwen" , "yw" },
            { "长孙" , "zhangsun" , "zs" },
            { "慕容" , "murong" , "mr" },
            { "鲜于" , "xianyu" , "xy" },
            { "闾丘" , "luqiu" , "lq" },
            { "司徒" , "situ" , "st" },
            { "司空" , "sikong" , "sk" },
            { "亓官" , "qiguan" , "qg" },
            { "司寇" , "sikou" , "sk" },
            { "仉督" , "zhangdu" , "zd" },
            { "子车" , "ziju" , "zj" },
            { "颛孙" , "zhuansun" , "zs" },
            { "端木


id setEasingCurve(QEasingCurve::Type type);

    /**
     * Returns whether the timeline is currently in progress.
     *
     * @see done
     * @since 5.14
     */
    bool running() const;

    /**
     * Returns whether the timeline is finished.
     *
     * @see reset
     * @since 5.14
     */
    bool done() const;

    /**
     * Resets the timeline to initial state.
     *
     * @since 5.14
     */
    void reset();

    enum class RedirectMode {
        Strict,
        Relaxed
    };

    /**
     * Returns the redirect mode for the source position.
     *
     * The redirect mode controls behavior of the timeline when its direction is
     * changed at the source position, e.g. what should we do when the timeline
     * initially goes forward and we change its direction to go backward.
     *
     * In the strict mode, the timeline will stop.
     *
     * In the relaxed mode, the timeline will go in the new direction. For example,
     * if the timeline goes forward(from 0 to 1), then with the new direction it
     * will go backward(from 1 to 0).
     *
     * The default is RedirectMode::Relaxed.
     *
     * @see targetRedirectMode
     * @since 5.15
     */
    RedirectMode sourceRedirectMode() const;

    /**
     * Sets the redirect mode for the source position.
     *
     * @param mode The new mode.
     * @since 5.15
     */
    void setSourceRedirectMode(RedirectMode mode);

    /**
     * Returns the redirect mode for the target position.
     *
     * The redirect mode controls behavior of the timeline when its direction is
     * changed at the target position.
     *
     * In the strict mode, subsequent update calls won't have any effect on the
     * current value of the timeline.
     *
     * In the relaxed mode, the timeline will go in the new direction.
     *
     * The default is RedirectMode::Strict.
     *
     * @see sourceRedirectMode
     * @since 5.15
     */
    RedirectMode targetRedirectMode() const;

    /**
     * Sets the redirect mode for the target position.
     *
     * @param mode The new mode.
     * @since 5.15
     */
    void setTargetRedirectMode(RedirectMode mode);

    TimeLine &operator=(const TimeLine &other);

    /**
     * @returns a value between 0 and 1 defining the progress of the timeline
     *
     * @since 5.23
     */
    qreal progress() const;

private:
    class Data;
    QSharedDataPointer<Data> d;
};

} // namespace KWin


// calling VM_STORE(u32, cache, pagedir, vaddr, value)
// See https://godbolt.org/z/x11EKveod
//
// inline static uintptr vm_translate(
//   vm_cache_t*   cache   [rdi],
//   vm_pagedir_t* pagedir [rsi],
//   u64           vaddr   [rdx],
//   u64           align,
//   vm_op_t       op)
// {
  mov     rbx, rdx // copy vaddr to long-lived (caller-owned) register rbx
//   u64 index = ((u64)(vaddr) >> PAGE_SIZE_BITS) & VM_CACHE_INDEX_VFN_MASK;
  mov     eax, ebx  // copy most significant 32 bits of vaddr to eax (index)
  shr     eax, 12   // index = index >> PAGE_SIZE_BITS
  movzx   eax, al   // copy bottom 8 bits of index and zero extend the value
//
//   u64 tag = vaddr & (VM_ADDR_PAGE_MASK ^ (align - 1llu));
  mov     rcx, rdx // copy vaddr to rcx
  an


0a,0x7e]

v_rsq_f32 v5, exec_lo
// GFX11: encoding: [0x7e,0x5c,0x0a,0x7e]

v_rsq_f32 v5, exec_hi
// GFX11: encoding: [0x7f,0x5c,0x0a,0x7e]

v_rsq_f32 v5, null
// GFX11: encoding: [0x7c,0x5c,0x0a,0x7e]

v_rsq_f32 v5, -1
// GFX11: encoding: [0xc1,0x5c,0x0a,0x7e]

v_rsq_f32 v5, 0.5
// GFX11: encoding: [0xf0,0x5c,0x0a,0x7e]

v_rsq_f32 v5, src_scc
// GFX11: encoding: [0xfd,0x5c,0x0a,0x7e]

v_rsq_f32 v255, 0xaf123456
// GFX11: encoding: [0xff,0x5c,0xfe,0x7f,0x56,0x34,0x12,0xaf]

v_rsq_f64 v[5:6], v[1:2]
// GFX11: encoding: [0x01,0x63,0x0a,0x7e]

v_rsq_f64 v[5:6], v[254:255]
// GFX11: encoding: [0xfe,0x63,0x0a,0x7e]

v_rsq_f64 v[5:6], s[2:3]
// GFX11: encoding: [0x02,0x62,0x0a,0x7e]

v_rsq_f64 v[5:6], s[104:105]
// GFX11: encoding: [0x68,0x62,0x0a,0x7e]

v_rsq_f64 v[5:6], vcc
// GFX11: encoding: [0x6a,0x62,0x0a,0x7e]

v_rsq_f64 v[5:6], ttmp[14:15]
// GFX11: encoding: [0x7a,0x62,0x0a,0x7e]

v_rsq_f64 v[5:6], exec
// GFX11: encoding: [0x7e,0x62,0x0a,0x7e]

v_rsq_f64 v[5:6], null
// GFX11: encoding: [0x7c,0x62,0x0a,0x7e]

v_rsq_f64 v[5:6], -1
// GFX11: encoding: [0xc1,0x62,0x0a,0x7e]

v_rsq_f64 v[5:6], 0.5
// GFX11: encoding: [0xf0,0x62,0x0a,0x7e]

v_rsq_f64 v[5:6], src_scc
// GFX11: encoding: [0xfd,0x62,0x0a,0x7e]

v_rsq_f64 v[254:255], 0xaf123456
// GFX11: encoding: [0xff,0x62,0xfc,0x7f,0x56,0x34,0x12,0xaf]

v_sat_pk_u8_i16 v5, v1
// GFX11: encoding: [0x01,0xc5,0x0a,0x7e]

v_sat_pk_u8_i16 v5, v255
// GFX11: encoding: [0xff,0xc5,0x0a,0x7e]

v_sat_pk_u8_i16 v5, s1
// GFX11:


ECT -> parser.readValueAs(SkeletalRotation::class.java)
            JsonToken.START_ARRAY -> {
                val rotation = parser.readValueAs(FloatArray::class.java)
                if (rotation.size != 3) throw IllegalArgumentException("Invalid count of components: ${rotation.size}")
                SkeletalRotation(Vec3(0, rotation))
            }

            else -> throw IllegalArgumentException("Can not skeletal rotation: $parser")
        }
    }
}
/*
 * Minosoft
 * Copyright (C) 2020-2025 Moritz Zwerger
 *
 * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
 *
 * This program 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 GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
 *
 * This software is not affiliated with Mojang AB, the original developer of Minecraft.
 */

@file:OptIn(ExperimentalTime::class)

package de.bixilon.minosoft.util.account.microsoft

import de.bixilon.minosoft.data.accounts.types.microsoft.MicrosoftTokens
import kotlin.time.Clock
import kotlin.time.Duration.Companion.seconds
import kotlin.time.ExperimentalTime

class AuthenticationResponse(
    val tokenType: TokenTypes,
    scope: String,
    expiresIn: Int,
    val accessToken: String,
    val idToken: String?,
    val refreshToken: String,
) {
    val expires = Clock.System.now() + expiresIn.seconds
    val scope = scope.split(' ')

    fun saveTokens(): MicrosoftTokens {
        return MicrosoftTokens(accessToken = accessToken, refreshToken = refreshToken, expires = expires)
    }

    enum class TokenTypes {
        BEARER,
        ;
    }
}
/*
 * Minosoft
 * Copyright (C) 2020-2022 Moritz Zwerger
 *
 * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
 *
 * This program 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 GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
 *
 * This software is not affiliated with Mojang AB, the original developer of Minecraft.
 */

package de.bixilon.minosoft.util.account.microsoft.xbox

import com.fasterxml.jackson.annotation.JsonIgnore
import com.fasterxml.jackson.annotation.JsonProperty
import de.bixilon.kutil.json.JsonUtil.asJsonList
import de.bixilon.kutil.json.JsonUtil.asJsonObject

data class XboxLiveToken(
    @JsonProperty("IssueInstant") val issueInstant: String,
    @JsonProperty("NotAfter") val notAfter: String,
    @JsonProperty("Token") val token: String,
    @JsonProperty("DisplayClaims") val displayClaims: Map<String, Any>,
) {
    @JsonIgnore val userHash = displayClaims["xui"].asJsonList()[0].asJsonObject()["uhs"]
}
/*
 * Minosoft
 * Copyright (C) 2020-2022 Moritz Zwerger
 *
 * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,


 handle error (buffer is full) ..
            }
        }
    }

    // NOTE: NEW!
    // (the default priority for tasks is 1 so we can actually omit it here)
    #[task]
    fn run_command(command: Command) {
        match command {
            Command::Foo => { /* .. */ }
            // ..
        }
    }

    // ..
};
```

Furthermore, unlike hardware tasks, software tasks are buffered so you can spawn
several instances of them: all the posted messages will be queued and executed
in FIFO order.

All the internal buffers used by the RTFM runtime are statically allocated so
RTFM doesn't depend on a dynamic memory allocator. Instead, you specify the
capacity of the message queue in the `#[task]` attribute -- the capacity
defaults to 1 if not explicitly stated.

If in our running example we expect that some command will take long enough to
execute that another command may arrive in the meanwhile then we can increase
the capacity of the message queue.

``` rust
#[rtfm::app(device = lm3s6965)]
const APP: () = {
    // ..

    // now we can receive up to 2 more commands while this runs
    #[task(capacity = 2)]
    fn run_command(command: Command) {
        match command {
            Command::Foo => { /* .. */ }
            // ..
        }
    }

    // ..
};
```

# Timer queue

The RTFM framework provides an opt-in `timer-queue` feature (NOTE: ARMv7-M only
feature, for now). When enabled a global timer queue is added to the RTFM
runtime. This timer queue can be used to `schedule` tasks to run at some time in
the future.

One of the main uses cases of the `schedule` API (also see [`rtfm::Instant`] and
[`rtfm::Duration`]) is creating periodic tasks.

[`rtfm::Instant`]: https://japaric.github.io/cortex-m-rtfm/api/rtfm/struct.Instant.html
[`rtfm::Duration`]: https://japaric.github.io/cortex-m-rtfm/api/rtfm/struct.Duration.html

``` rust
const PERIOD: u32 = 12_000_000; // clock cycles == one second

#[rtfm::app(device = lm3s6965)]
const APP: () = {
    #[init(spawn = [periodic])]
    fn init() {
        // bootstrap the `periodic` task
        spawn.periodic().unwrap();
    }

    #[task(schedule = [periodic])]
    fn periodic() {
        // .. do stuff ..

        // schedule this task to run at `PERIOD` clock cycles after
        // it was last `scheduled` to run
        schedule.periodic(scheduled + PERIOD.cycles()).unwrap();
    }

    // ..
};
```

# What's next?

To compile on stable some sacrifices had to be made in terms of (static) memory
usage and code size. As there's no way to have uninitialized memory in `static`
variables I had to rely on `Option`s and late (runtime) initialization in
several places. But once `MaybeUninit` and `const fn` with trait bounds make
their way into stable I'll be able to remove all that unnecessary overhead.

More importantly though, I've been [playing] with Cortex-R processors, multicore
devices and asymmetric multiprocessing (AKA AMP)! And I'm happy to report that
not only have I got RTFM running on a Cortex-**R** core but I also have
implemented a proof of concept for *multicore* RTFM!

[playing]: https:/


ный тигр\"",nil},
[33358] = {"Ночной саблезуб часового",nil},
[33359] = {"Наездница на ночном саблезубе",nil},
[33361] = {"Мокра Дробитель Черепов","Абсолютный чемпион Оргриммара"},
[33364] = {"Сетка наведения молота Торима",nil},
[33365] = {"Молот Торима",nil},
[33366] = {"Сетка наведения оберега Фрейи",nil},
[33367] = {"Оберег Фрейи",nil},
[33369] = {"Сетка наведения адского огня Мимирона",nil},
[33370] = {"Адский огонь Мимирона",nil},
[33372] = {"Зул'тор","Абсолютный чемпион Сен'джина"},
[33373] = {"Страж смерти Визери","Абсолютный чемпион Подгорода"},
[33374] = {"Жестокий Бивень",nil},
[33375] = {"Раненый часовой",nil},
[33377] = {"Система наведения мортиры",nil},
[33378] = {"Шар молний",nil},
[33379] = {"Эрессея Певица Рассвета","Абсолютный чемпион Луносвета"},
[33380] = {"Hammer Vehicle [PH]",nil},
[33381] = {"Томаррек","Торговец броней"},
[33382] = {"Искатель славы из Луносвета",nil},
[33383] = {"Искатель славы из Громового Утеса",nil},
[33384] = {"Искатель славы из Подгорода",nil},
[33386] = {"Жестокий Бивень",nil},
[33387] = {"Змеящийся плеточник",nil},
[33388] = {"Страж клана Темных Рун",nil},
[33389] = {"Мудрец Колючего Меха",nil},
[33390] = {"Воин Колючего Меха",nil},
[33394] = {"Душитель Ясеневого леса",nil},
[33403] = {"Рунок Буйногривый","Абсолютный чемпион Громового Утеса"},
[33404] = {"Заводной крушитель поездов",nil},
[33405] = {"Акинос","Мастер владения оружием"},
[33406] = {"Achievement Trigger Freya",nil},
[33407] = {"Гоблин-оператор",nil},
[33408] = {"Стальгорнский баран",nil},
[33409] = {"Оргриммарский волк",nil},
[33410] = {"Фрейя",nil},
[33411] = {"Ходир",nil},
[33412] = {"Мимирон",nil},
[33413] = {"Торим",nil},
[33414] = {"Боевой конь Отрекшихся",nil},
[33415] = {"[ph] Tournament War Elekk - NPC Only",nil},
[33416] = {"Экзодарский элекк",nil},
[33417] = {"Рыцарь Райдалла",nil},
[33418] = {"Крылобег Луносвета",nil},
[33419] = {"


/*---------------------------------------------------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Copyright (C) 2011-2024 OpenFOAM Foundation
     \\/     M anipulation  |
-------------------------------------------------------------------------------
License
    This file is part of OpenFOAM.

    OpenFOAM is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    OpenFOAM 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 GNU General Public License
    for more details.

    You should have received a copy of the GNU General Public License
    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.

Class
    Foam::EulerImplicit

Description
    An Euler implicit solver for chemistry

    Euler implicit integration based on the reaction rate Jacobian is used to
    solver for the composition and Euler explicit integration for the
    temperature.  Separating the integration of temperature from composition
    in this manner is significantly more stable for exothermic systems

SourceFiles
    EulerImplicit.C

\*---------------------------------------------------------------------------*/

#ifndef EulerImplicit_H
#define EulerImplicit_H

#include "chemistrySolver.H"
#include "simpleMatrix.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

namespace Foam
{

/*---------------------------------------------------------------------------*\
                        Class EulerImplicit Declaration
\*---------------------------------------------------------------------------*/

template<class ChemistryModel>
class EulerImplicit
:
    public chemistrySolver<ChemistryModel>
{
    // Private Data

        //- Chemistry timescale coefficient
        scalar cTauChem_;

        //- Field encapsulating the composition, temperature and pressure
        mutable scalarField cTp_;

        //- Reaction rate field
        mutable scalarField R_;

        //- Reaction Jacobian
        mutable scalarSquareMatrix J_;

        //- Euler implicit integration matrix for composition
        mutable simpleMatrix<scalar> E_;

public:

    //- Runtime type information
    TypeName("EulerImplicit");

    // Constructors

        //- Construct from thermo
        EulerImplicit(const fluidMulticomponentThermo& thermo);

    //- Destructor
    virtual ~EulerImplicit();

    // Member Functions

        //- Update the concentrations and return the chemical time
        virtual void solve
        (
            scalar& p,
            scalar& T,
            scalarField& c,
            const label li,
            scalar& deltaT,
            scalar& subDeltaT
        ) const;
};

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

} // End namespace Foam

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

#ifdef NoRepository
    #include "EulerImplicit.C"
#endif

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

#endif

// ************************************************************************* //


(new testcases.CWE526_Info_Exposure_Environment_Variables.CWE526_Info_Exposure_Environment_Variables__Servlet_13()).runTest(request, response);
			(new testcases.CWE526_Info_Exposure_Environment_Variables.CWE526_Info_Exposure_Environment_Variables__Servlet_14()).runTest(request, response);
			(new testcases.CWE526_Info_Exposure_Environment_Variables.CWE526_Info_Exposure_Environment_Variables__Servlet_15()).runTest(request, response);
			(new testcases.CWE526_Info_Exposure_Environment_Variables.CWE526_Info_Exposure_Environment_Variables__Servlet_16()).runTest(request, response);
			(new testcases.CWE526_Info_Exposure_Environment_Variables.CWE526_Info_Exposure_Environment_Variables__Servlet_17()).runTest(request, response);
			/* END-AUTOGENERATED-SERVLET-TESTS-5 */
		} catch (Throwable t) {

			/* this will only happen on an IOException or something (the runTest for the test cases will catch any exceptions from the test cases).  So, we just abort
			 * and write to the console (since we can't write to the response without possibly throwing another exception)
			 */

			System.out.println(
					" Caught thowable from doGetCWE5 ");

			System.out.println(" Throwable's message = " + t.getMessage());

			System.out.println("Stack trace below");

			StackTraceElement stes[] = t.getStackTrace();

			for (StackTraceElement ste : stes) {

				System.out.println("  " + ste.toString());
			}
		}
	}

	private static void doGetCWE6(HttpServletRequest request, HttpServletResponse response) {
		try {
			/* BEGIN-AUTOGENERATED-SERVLET-TESTS-6 */

			/* END-AUTOGENERATED-SERVLET-TESTS-6 */
		} catch (Throwable t) {

			/* this will only happen on an IOException or something (the runTest for the test cases will catch any exceptions from the test cases).  So, we just abort
			 * and write to the console (since we can't write to the response without possibly throwing another exception)
			 */

			System.out.println(
					" Caught thowable from doGetCWE6 ");

			System.out.println(" Throwable's message = " + t.getMessage());

			System.out.println("Stack trace below");

			StackTraceElement stes[] = t.getStackTrace();

			for (StackTraceElement ste : stes) {
				System.out.println("  " + ste.toString());
			}
		}
	}

	private static void doGetCWE7(HttpServletRequest request, HttpServletResponse response) {
		try {
			/* BEGIN-AUTOGENERATED-SERVLET-TESTS-7 */

			/* END-AUTOGENERATED-SERVLET-TESTS-7 */
		} catch (Throwable t) {

			/* this will only happen on an IOException or something (the runTest for the test cases will catch any exceptions from the test cases).  So, we just abort
			 * and write to the console (since we can't write to the response without possibly throwing another exception)
			 */

			System.out.println(
					" Caught thowable from doGetCWE7 ");

			System.out.println(" Throwable's message = " + t.getMessage());

			System.out.println("Stack trace below");

			StackTraceElement stes[] = t.getStackTrace();

			for (StackTraceElement ste : stes) {
				System.out.println("  " + ste.toString());
			}
		}
	}

	private static void doGetCWE8(HttpServletRequest request, HttpServletResponse response) {
		try {
			/* BEGIN-AUTOGENERATED-SERVLET-TESTS-8 */

			/* END-AUTOGENERATED-SERVLET-TESTS-8 */
		} catch (Throwable t) {

			/* this will only happen on an IOException or something (the runTest for the test cases will catch any exceptions from the test cases).  So, we just abort
			 * and write to the console (since we can't write to the response without possibly throwing another exception)
			 */

			Syst


display:none">Info about the 'url()'
            external reference.https://www.w3.org/TR/css-values-4/#funcdef-urlReferenced
            in:

2.1.
                    The Constructor

        Info about the 'CSSOMString'
            external reference.https://www.w3.org/TR/cssom-1/#cssomstringReferenced
            in:

2.
                    The FontFace Interface (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) <a
                    hr


nId)
}

// GetFirstEvmNetwork retrieves the first EVM network available in the test environment
func (te *CLClusterTestEnv) GetFirstEvmNetwork() (*blockchain.EVMNetwork, error) {
	if len(te.EVMNetworks) == 0 {
		return nil, errors.New("no EVM networks available")
	}

	return te.EVMNetworks[0], nil
}

// GetEVMNetworkForChainId retrieves the EVM network for the specified chain ID
func (te *CLClusterTestEnv) GetEVMNetworkForChainId(chainId int64) (*blockchain.EVMNetwork, error) {
	for _, network := range te.EVMNetworks {
		if network.ChainID == chainId {
			return network, nil
		}
	}

	return nil, fmt.Errorf("no EVM network available for chain ID %d", chainId)
}
package shardingMocks

const uint32Size = 4
const numUint32 = 2

// ValidatorMock defines a mocked validator
type ValidatorMock struct {
	pubKey  []byte
	chances uint32
	index   uint32

	PubKeyCalled func() []byte
}

// NewValidatorMock creates a new instance of a validator
func NewValidatorMock(pubKey []byte, chances uint32, index uint32) *ValidatorMock {
	return &ValidatorMock{
		pubKey:  pubKey,
		chances: chances,
		index:   index,
	}
}

// PubKey returns the validator's public key
func (v *ValidatorMock) PubKey() []byte {
	if v.PubKeyCalled != nil {
		return v.PubKeyCalled()
	}
	return v.pubKey
}

// Chances returns the validator's chances
func (v *ValidatorMock) Chances() uint32 {
	return v.chances
}

// Index returns the validators index
func (v *ValidatorMock) Index() uint32 {
	return v.index
}

// Size -
func (v *ValidatorMock) Size() int {
	return len(v.pubKey) + uint32Size*numUint32
}

// IsInterfaceNil returns true if there is no value under the interface
func (v *ValidatorMock) IsInterfaceNil() bool {
	return v == nil
}
package syncer

import (
	"context"

	"github.com/multiversx/mx-chain-core-go/data"
	"github.com/multiversx/mx-chain-core-go/data/block"
	"github.com/multiversx/mx-chain-go/state"
)

// TransactionsSyncHandlerMock -
type TransactionsSyncHandlerMock struct {
	SyncTransactionsForCalled func(miniBlocks map[string]*block.MiniBlock, epoch uint32, ctx context.Context) error
	GetTransactionsCalled     func() (map[string]data.TransactionHandler, error)
	GetValidatorsInfoCalled   func() (map[string]*state.ShardValidatorInfo, error)
	ClearFieldsCalled         func()
}

// SyncTransactionsFor -
func (et *TransactionsSyncHandlerMock) SyncTransactionsFor(miniBlocks map[string]*block.MiniBlock, epoch uint32, ctx context.Context) error {
	if et.SyncTransactionsForCalled != nil {
		return et.SyncTransactionsForCalled(miniBlocks, epoch, ctx)
	}
	return nil
}

// GetTransactions -
func (et *TransactionsSyncHandlerMock) GetTransactions() (map[string]data.TransactionHandler, error) {
	if et.GetTransactionsCalled != nil {
		return et.GetTransactionsCalled()
	}
	return nil, nil
}

// GetValidatorsInfo -
func (et *TransactionsSyncHandlerMock) GetValidatorsInfo() (map[string]*state.ShardValidatorInfo, error) {
	if et.GetValidatorsInfoCalled != nil {
		return et.GetValidatorsInfoCalled()
	}
	return nil, nil
}

// ClearFields -
func (et *TransactionsSyncHandlerMock) ClearFields() {


0

            for a, b in pairs(employees) do
                if b.rank ~= 'owner' then
                    TotalSalary = TotalSalary + b.salary
                end
            end

            local CompanyInformation = ExecuteSql("SELECT `information` FROM `real_vehicleshop` WHERE `id` = '"..k.."'")
            local information = json.decode(CompanyInformation[1].information)
            if #CompanyInformation > 0 and information.Money < TotalSalary then
                for a, b in pairs(employees) do
                    if b.rank ~= 'owner' then
                        SendMailToOfflinePlayer(b.identifier, information.Name, Language('not_enough_salary_subject'), Language('not_enough_salary_message'))
                    end
                end
            else
                information.Money = information.Money - TotalSalary
                Config.Vehicleshops[k].CompanyMoney = Config.Vehicleshops[k].CompanyMoney - TotalSalary
                for a, b in pairs(employees) do
                    local salary = b.salary
                    local salarypenalty = b.salarypenalty
                    if b.rank ~= 'owner' then
                        if salarypenalty > 0 then
                            salarypenalty = salarypenalty - 1
                        else
                            GiveSalaryToEmployees(Config.Vehicleshops[k].CompanyName, b.identifier, salary)
                        end
                    end
                end
            end
            ExecuteSql("UPDATE `real_vehicleshop` SET `employees` = '"..json.encode(employees).."', `information` = '"..json.encod


The key insight: matches can only attend to previous matches involving the same players!

```
🔍 Player-Specific Attention Matrix (1=can attend, 0=blocked)

     1  2  3  4  5  6  7  8
  1  ◯  0  0  0  0  0  0  0   <- Match 1: only self (no previous matches)
  2  0  ◯  0  0  0  0  0  0   <- Match 2: only self (Djokovic, can't see Nadal match 1)
  3  1  1  ◯  0  0  0  0  0   <- Match 3: sees matches 1,2 (both players involved)
  4  0  1  1  ◯  0  0  0  0   <- Match 4: sees matches 2,3 (Djokovic involved)
  5  0  1  1  1  ◯  0  0  0   <- Match 5: sees matches 2,3,4 (Djokovic involved)
  6  0  1  1  1  1  ◯  0  0   <- Match 6: sees matches 2,3,4,5 (Djokovic involved)
  7  1  0  1  0  0  0  ◯  0   <- Match 7: sees matches 1,3 (Nadal involved)
  8  1  1  1  1  1  1  1  ◯   <- PREDICT: sees ALL previous matches with either player!

Legend: ◯ = self-attention, 1 = can attend, 0 = blocked
       Causal mask: can only look at previous positions (left & up)
       Player mask: can only see matches involving same players
```

This prevents the model from learning spurious patterns between unrelated players!

## Quick Start

```bash
# Run the setup script to download all the data and setup the environment
./setup.sh

# Train current model
uv run python train.py --epochs 5 --batch-size 16

# Launch the web app to make predictions (WIP)
streamlit run app.py
```

Built with PyTorch ❤🔥 by Leandros Stefanou
### Paper → Code Matrix (1‑page)

A quick crosswalk from the paper (§/Box) to concrete code, commands, and produced artifacts. Filenames use repo paths; scripts assume the `ldtc` console entrypoint is installed.

| Paper §/Box | Short text | Files/Functions | Script to run | Artifact produced |
|---|---|---|---|---|
| Paper §4.2 | NC1 loop‑dominance: M(dB) ≥ Mmin → nc1 bit | `lmeas/metrics.py::m_db`; `lmeas/estimators.py::estimate_L`; `cli/main.py::run_baseline` | `ldtc run --config configs/profile_r0.yml` | `artifacts/indicators/ind_*.{jsonl,cbor}` (payload.nc1, mq, profile_id); `artifacts/audits/audit.jsonl` with `window_measured` (no raw L) |
| Paper §4.3 | SC1 resilience: δ ≤ ε and τrec ≤ τmax with post‑recovery margin → sc1 bit | `lmeas/metrics.py::sc1_evaluate`; `cli/main.py::omega_power_sag` | `ldtc omega-power-sag --config configs/profile_r0.yml --drop 0.3 --duration 10` | `audit.jsonl` `sc1_result` record; final indicator with `sc1`; `artifacts/figures/verification_timeline.png`, `sc1_table.csv`, `manifest.json` |
| Paper §4.1 (Δt); §4.5 App. A | LREG + Δt governance: write‑only raw L; audited, rate‑limited Δt edits | `guardrails/lreg.py` (derived‑only); `guardrails/dt_guard.py::DeltaTGuard`; `guardrails/audit.py::AuditLog` | `ldtc run --config configs/profile_r0.yml` (optionally include `scripted_dt_changes` in YAML) | `audit.jsonl` `dt_changed` entries and `run_invalidated` reason `dt_change_rate_


703.023-1.227 0-3.59-.196-5.623-1.508-2.486-1.6-3.746-4.324-3.746-8.098 0-10.652 11.633-11.084 11.748-11.086h11.619v.252c0 1.301-2.332 1.548-3.926 1.766-.537.074-1.621.188-1.928.346 2.941 1.568 3.418 4.039 3.418 7.721 0 4.188-1.641 6.404-3.381 7.961-1.074.962-1.924 1.722-1.924 2.732 0 .992 1.164 2.014 2.51 3.195 2.207 1.939 5.23 4.593 5.23 9.052.001 4.615-1.984 7.917-5.896 9.816zm25.405-20.654h-7.578v7.579H58.26v-7.579h-7.578v-4.8h7.578v-7.579h4.801v7.579h7.578v4.8zm-31.526 5.803c-.26 0-.521.01-.783.026-2.223.164-4.268.995-5.756 2.344-1.469 1.331-2.219 3.003-2.111 4.708.223 3.549 4.039 5.635 8.674 5.297 4.564-.332 7.604-2.954 7.381-6.508-.211-3.346-3.116-5.867-7.405-5.867z"/>
                </svg>

                <svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 32 32">
                  <path d="M16 0C7.164 0 0 7.164 0 16c0 8.838 7.164 16 16 16s16-7.162 16-16c0-8.836-7.164-16-16-16zm1.652 19.562c-.992 0-1.926-.535-2.247-1.146 0 0-.534 2.117-.646 2.524-.398 1.444-1.569 2.892-1.659 3.009-.063.082-.204.057-.219-.054-.025-.186-.324-2.006.027-3.491.177-.746 1.183-5.009 1.183-5.009s-.294-.586-.294-1.453c0-1.362.79-2.379 1.773-2.379.836 0 1.24.627 1.24 1.379 0 .841-.535 2.099-.812 3.263-.23.976.488 1.771 1.45 1.771 1.739 0 2.913-2.236 2.913-4.888 0-2.014-1.355-3.521-3.823-3.521-2.787 0-4.524 2.08-4.524 4.402 0 .801.236 1.365.606 1.801.17.201.193.284.132.514-.045.168-.145.576-.188.736-.061.233-.25.315-.46.229-1.284-.522-1.882-1.93-1.882-3.512 0-2.609 2.201-5.74 6.568-5.74 3.509 0 5.817 2.539 5.817 5.266.004 3.606-2 6.299-4.955 6.299z"/>
                </svg>

            VIEW PROJECT

<!DOCTYPE html>

    <title>noVNC</title>


5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z"]},Tn={prefix:"fas",iconName:"grin-tears",icon:[640,512,[],"f588","M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},Dn={prefix:"fas",iconName:"grin-tongue",icon:[496,512,[],"f589","M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6


3.触发后门阶段，在特定条件下，通过system实现RCE；
#### 1. 编译阶段注入恶意代码

攻击者将看似测试的混淆代码推送到数据压缩库liblzma的构建过程中。

在XZ构建过程中，会调用关键脚本build-to-host.m4。在其中会嵌入一个混淆的脚本，与配置的脚本在一起执行。这个注入的脚本在模块xz-utils和liblzma生成MakeFiles过程中发挥着重要作用[3]。

另外，liblzma的符号会在许多其他库之前得到解析，包括sshd二进制文件中的符号。在解析符号后，由于编译标志的GOT将被重新映射为只读页面权限-Wl,-z,relro。所以，为了使得恶意代码能够解析尚未加载的库中的符号，后门会在动态链接器中安装挂钩。这个钩子函数从_dl_audit_symbind中被调用，后门将RSA_public_decrypt@....plt的值更改为指向其自己的代码。

编译分为三个阶段[4]：

（1）通过M4编译宏，还原恢复恶意数据：

m4/build-to-host.m4文件里有一些相关的代码片段：

![](https://mmbiz.qpic.cn/mmbiz_jpg/5nNKGRl7pFjpYFjbIoXdqjjuxDfwMrmJG7Bgneh3kSHzbTlKHemibCP0QdzibEJ19UZs31063wuQZowsAH4svRWw/640?wx_fmt=jpeg "")

从tests/files/bad-3-corrupt_lzma2.xz文件中读取的字节被输出到标准输入输出。在读取完所有内容后，还会添加一个新行(\n)。

第二步是运行tr（转换，就像是“将字符映射到其他字符”，或者“将字符替换为目标字符”），基本上是将选定的字符（或字节值）更改为其他字符（其他字节值）。于是，我们有tr "\t -" " \t-", 它在从tests/files/bad-3-corrupt_lzma2.xz文件流式传输的字节中进行以下替换：

![](https://mmbiz.qpic.cn/mmbiz_jpg/5nNKGRl7pFjpYFjbIoXdqjjuxDfwMrmJ1w5h6V15dlVWIfPSNhlQU2YLOZqGCBhciaUUMgLz306wbvDicNyu1CMQ/640?wx_fmt=jpeg "")

这实际上是“修复”了bad-3-corrupt_lzma2.xz，使其再次形成一个正确的xz流。在这个阶段的最后一步中，修复后的xz字节流被提取。

（2）通过Bash脚本，


com/imgs/daily/vulture/2016/09/09/09-desiigner.w145.h98.2x.jpg); }
      }
    </style>
    <time datetime="2016-09-09T15:32:00+00:00">11:32 a.m.</time>Desiigner Arrested on Felony Drug and Gun Charges After Altercation
The rapper allegedly pointed a gun at the driver of a car.

    <time datetime="2016-09-09T15:25:00+00:00">11:25 a.m.</time>Jason Aldean Doesn’t Understand Why People Are Sensitive About Blackface
Foot, meet mouth.

    <time datetime="2016-09-09T15:21:00+00:00">11:21 a.m.</time>Narcos Season Finale Recap: A Roof and a Hard Place
"When you lay eyes on him, the devil's a real letdown."

    <button type="button" title="Loa


is with a timed msg
void o2_stun_query(O2msg_data_ptr msgdata, const char *types,
                   O2arg_ptr *argv, int argc, const void *user_data)
{
    if (o2n_public_ip[0]) {
        o2_stun_query_running = false;
        return;
    }
    if (stun_try_count >= 5) {  // give up and finish initialization
        strcpy(o2n_public_ip, "00000000");
        o2_init_phase2();
        o2_stun_query_running = false;
        return;
    }
    O2netmsg_ptr msg = (O2netmsg_ptr) O2_MALLOC(80);
    binding_req_ptr brp = (binding_req_ptr) &msg->payload; // after length
    brp->stun_method = htons(0x0001);
    brp->msg_length = 0;
    brp->magic_cookie = htonl(0x2112A442);
    brp->transaction_id[0] = htonl(0x63c7117e);
    brp->transaction_id[1] = htonl(0x0714278f);
    brp->transaction_id[2] = htonl(0x5ded3221);
    msg->length = sizeof(binding_req);
    o2n_send_udp_via_info(stun_info->fds_info, &stun_server_address, msg);
    stun_try_count++;
    o2_send_start();
    o2_schedule_msg(&o2_ltsched, o2_message_finish(o2_local_time() + 2,
                                                   "!_o2/ipq", true));
}

// only called from o2_discovery_initialize() which is called by o2_initialize()
// If the network changes, you MUST restart O2 because the "unique" local
// process name will change if the public port becomes available or changes.
O2err o2_get_public_ip()
{
    if (!o2n_internet_enabled) {  // Internet disabled ->
        strcpy(o2n_public_ip, "00000000"); // zero public IP means no Internet
        o2_init_phase2();         // we can now finish initialization
        return O2_SUCCESS;
    }
    if (o2_stun_query_running || o2n_public_ip[0]) {
        return O2_ALREADY_RUNNING; // started already
    }
    stun_try_count = 0;  // we get 5 tries every time we start
    Fds_info *fds_info = Fds_info::create_udp_server(&stun_server_port, true);
#ifndef O2_NO_DEBUG
    fds_info->set_description(o2_heapify("stun_udp_server_port"));
#endif
    stun_info = new Stun_info(fds_info);
    O2_DBc(stun_info->co_info(fds_info, "created UDP server for STUN"));
    stun_server_address.init("stun.l.google.com", 19302, false);
    // schedule stun_query until we get a reply
    o2_method_new_internal("/_o2/ipq", "", &o2_stun_query, NULL, false, false);
    o2_stun_query_running = true;  // do not reset until O2 is initialized again
    o2_stun_query(NULL, NULL, NULL, 0, NULL);
    return O2_SUCCESS;
    // when we get the public IP or time out, we can finish initialization
}

O2err Stun_info::deliver(O2netmsg_ptr msg)
{
    binding_reply_ptr brp = (binding_reply_ptr) msg->payload;
    // brp is now based just after the message length
    if (brp->response == htons(0x0101))


 angle, double degrees)
        {
            angle += degrees;

            angle = angle % 360;

            while (angle < 0)
            {
                angle += 360;
            }
            return angle;
        }

        static linelatlng findClosestLine(utmpos start, List<linelatlng> list, double minDistance, double angle)
        {
            if (minDistance == 0)
            {
                linelatlng answer = list[0];
                double shortest = double.MaxValue;

                foreach (linelatlng line in list)
                {
                    double ans1 = start.GetDistance(line.p1);
                    double ans2 = start.GetDistance(line.p2);
                    utmpos shorterpnt = ans1 < ans2 ? line.p1 : line.p2;

                    if (shortest > start.GetDistance(shorterpnt))
                    {
                        answer = line;
                        shortest = start.GetDistance(shorterpnt);
                    }
                }

                return answer;
            }

            // By now, just add 5.000 km to our lines so they are long enough to allow intersection
            double METERS_TO_EXTEND = 5000;

            double perperndicularOrientation = AddAngle(angle, 90);

            // Calculation of a perpendicular line to the grid lines containing the "start" point
            /*
             *  --------------------------------------|------------------------------------------
             *  --------------------------------------|------------------------------------------
             *  -------------------------------------start---------------------------------------
             *  --------------------------------------|------------------------------------------
             *  --------------------------------------|------------------------------------------
             *  --------------------------------------|------------------------------------------
             *  --------------------------------------|------------------------------------------
             *  --------------------------------------|------------------------------------------
             */
            utmpos start_perpendicular_line = newpos(start, perperndicularOrientation, -METERS_TO_EXTEND);
            utmpos stop_perpendicular_line = newpos(start, perperndicularOrientation, METERS_TO_EXTEND);

            // Store one intersection point per grid line
            Dictionary<utmpos, linelatlng> intersectedPoints = new Dictionary<utmpos, linelatlng>();
            // lets order distances from every intersected point per line with the "start" point
            Dictionary<double, utmpos> ordered_min_to_max = new Dictionary<double, utmpos>();

            foreach (linelatlng line in list)
            {
                // Calculate intersection point
                utmpos p = FindLineIntersectionExtension(line.p1, line.p2, start_perpendicular_line, stop_perpendicular_line);

                // Store it
                intersectedPoints[p] = line;

                // Calculate distances between interesected point and "start" (i.e. line and start)
                double distance_p = start.GetDistance(p);

                if (!ordered_min_to_max.ContainsKey(distance_p))
                    ordered_min_to_max.Add(distance_p, p);
            }

            // Acquire keys and sort them.
            List<double> ordered_keys = ordered_min_to_max.Keys.ToList();
            ordered_keys.Sort();

            // Lets select a line that is the closest to "start" point but "mindistance" away at least.
            // If we have only one line, return that line whatever the minDistance says
            double key = double.MaxValue;
            int i = 0;
            while (key == double.MaxValue && i < ordered_


# Import required libraries and modules
import os
from dotenv import load_dotenv
from langchain.chat_models import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser

# Load environment variables from a .env file
load_dotenv()

# Retrieve the OpenAI API key from environment variables
api_key = os.getenv("OPENAI_API_KEY")

# Initialize the ChatOpenAI model with the API key and specify the GPT-4 model
model = ChatOpenAI(api_key=api_key, model='gpt-4o')

# Define the system message for the AI assistant
system = """
You are an AI assistant helping people.
Your task is to generate the requested number of business ideas based on AI technologies.
List each business idea clearly and add understandable explanations for each.
"""

# Create a prompt template for the chat model
prompt = ChatPromptTemplate.from_messages([
    ("system", system),
    ("human", "{user_prompt}"),
])

# Initialize the output parser
output_parser = StrOutputParser()

# Create a chain that connects the prompt, model, and output parser
chain = prompt | model | output_parser

# Define a user prompt
user_prompt = "Can you generate 5 business ideas based on AI technologies?"

# Invoke the chain with the user prompt and get the response
response = chain.invoke({"user_prompt": user_prompt})

# Split the response into individual business ideas
business_ideas = response.split('\n')

# Structure the business ideas into a list
structured_ideas = []
for i, idea in enumerate(business_ideas):
    if idea.strip():
        structured_ideas.append(f"{idea.strip()}")

# Print each structured business idea
for idea in structured_ideas:
    print(idea)

# Write the structured business ideas to a text file
with open('ai_business_ideas.txt', 'w') as file:
    for idea in structured_ideas:
        file.write(f"{idea}\n")


 Assert.Equal((a ?? Array.Empty<byte>()).Concat(b ?? Array.Empty<byte>()), (s1 + s2).GetBytes());
        }

        [Theory]
        [InlineData("0123456789", '0', 0)]
        [InlineData("0123456789", '5', 5)]
        [InlineData("0123456789", 'a', -1)]
        public void IndexOfChar(string haystack, char needle, int expected)
        {
            Assert.Equal(expected, new Utf8String(haystack).IndexOf(needle));
        }

        [Theory]
        [InlineData("012345678901234567890123456789", '0', 0, 0)]
        [InlineData("012345678901234567890123456789", '0', 1, 10)]
        [InlineData("012345678901234567890123456789", '0', 11, 20)]
        [InlineData("012345678901234567890123456789", '0', 21, -1)]
        public void IndexOfCharStartingAtIndex(string haystack, char needle, int startIndex, int expected)
        {
            Assert.Equal(expected, new Utf8String(haystack).IndexOf(needle, startIndex));
        }

        [Theory]
        [InlineData("01234567890123456789", '0', 10)]
        [InlineData("01234567890123456789", '5', 15)]
        [InlineData("01234567890123456789", 'a', -1)]
        public void LastIndexOfChar(string haystack, char needle, int expected)
        {
            Assert.Equal(expected, new Utf8String(haystack).LastIndexOf(needle));
        }

        [Theory]
        [InlineData("012345678901234567890123456789", '0', 29, 20)]
        [InlineData("012345678901234567890123456789", '0', 19, 10)]
        [InlineData("012345678901234567890123456789", '0', 9, 0)]
        [InlineData("012345678901234567890123456789", 'a', 20, -1)]
        public void LastIndexOfCharStartingAtIndex(string haystack, char needle, int startIndex, int expected)
        {
            Assert.Equal(expected, new Utf8String(haystack).LastIndexOf(needle, startIndex));
        }

        [Theory]
        [InlineData("0123456789", "01", 0)]
        [InlineData("0123456789", "56", 5)]
        [InlineData("0123456789", "ab", -1)]
        public void IndexOfString(string haystack, string needle, int expected)
        {
            Assert.Equal(expected, new Utf8String(haystack).IndexOf(needle));
        }

        [Theory]
        [InlineData("012345678901234567890123456789", "01", 0, 0)]
        [InlineData("012345678901234567890123456789", "01", 1, 10)]
        [InlineData("012345678901234567890123456789", "01", 11, 20)]
        [InlineData("012345678901234567890123456789", "01", 21, -1)]
        public void IndexOfStringStartingAtIndex(string haystack, string needle, int startIndex, int expected)
        {
            Assert.Equal(expected, new Utf8String(haystack).IndexOf(needle, startIndex));
        }
    }
}


types"];

    expect(map.get('a')).toBe('text/a');
    expect(map.get('a1')).toBe('text/a');
    expect(map.get('b')).toBe('text/b');
    expect(map.get('b1')).toBe('text/b');

    const extensions = mime["extensions"];

    expect(extensions.get('text/a')).toBe('a');
    expect(extensions.get('text/b')).toBe('b');
  });

  it('define()', function () {
    const mime = new Mime({ 'text/a': ['a'] }, { 'text/b': ['b'] });

    expect(() => mime.define({ 'text/c': ['b'] })).toThrow();

    expect(() => mime.define({ 'text/c': ['b'] }, true)).not.toThrow();

    const map = mime["types"];

    expect(map.get('a')).toBe('text/a');
    expect(map.get('b')).toBe('text/c');

    const extensions = mime["extensions"];

    expect(extensions.get('text/a')).toBe('a');
    expect(extensions.get('text/b')).toBe('b');
    expect(extensions.get('text/c')).toBe('b');
  });

  it('define() multiple extensions', () => {
    const mime = new Mime({ 'text/a': ['a'] });

    expect(mime.getExtension('text/a')).toBe('a');

    mime.define({ 'text/a': ['b']}, false);

    expect(mime.getExtension('text/a')).toBe('a');

    mime.define({ 'text/a': ['c']}, true);

    expect(mime.getExtension('text/a')).toBe('c');
  })

  it('define() *\'ed types', function () {
    const mime = new Mime(
      { 'text/a': ['*b'] },
      { 'text/b': ['b'] }
    );

    const map = mime["types"];

    expect(map.get('b')).toBe('text/b');

    const extensions = mime["extensions"];

    expect(extensions.get('text/a')).toBe('b');
    expect(extensions.get('text/b')).toBe('b');
  });

  it('case-insensitive', function () {
    const mime = new Mime({
      'TEXT/UPPER': ['UP'],
      'text/lower': ['low'],
    });

    expect(mime.getType('test.up')).toBe('text/upper');
    expect(mime.getType('test.UP')).toBe('text/upper');
    expect(mime.getType('test.low')).toBe('text/lower');
    expect(mime.getType('test.LOW')).toBe('text/lower');

    expect(mime.getExtension('text/upper')).toBe('up');
    expect(mime.getExtension('text/lower')).toBe('low');
    expect(mime.getExtension('TEXT/UPPER')).toBe('up');
    expect(mime.getExtension('TEXT/LOWER')).toBe('low');
  });

  it('getType()', function () {
    // Upper/lower case
    expect(mime.getType('text.txt')).toBe('text/plain');
    expect(mime.getType('TEXT.TXT')).toBe('text/plain');

    // Bare extension
    expect(mime.getType('txt')).toBe('text/plain');
    expect(mime.getType('.txt')).toBe('text/plain');
    expect(mime.getType('.bogus')).toBeNull();
    expect(mime.getType('bogus')).toBeNull();

    // Non-sensical
    expect(mime.getType(null)).toBeNull();
    expect(mime.getType(undefined)).toBeNull();
    expect(mime.getType(42)).toBeNull();
    expect(mime.getType({})).toBeNull();

    // File paths
    expect(mime.getType('dir/text.txt')).toBe('text/plain


.c-list__parcel--select:hover {
  transition: background-color 400ms cubic-bezier(0.3, 0.7, 0, 1);
}

.c-list--anchors {
  --border-radius: var(--rs-button-radius);
}

.c-list__item--icon {
  position: relative;
}

.c-list__item--icon .c-list__parcel:last-of-type {
  padding-right: calc(1.5em + 0.8em * 2);
}

.c-list--anchors .c-list__item {
  display: flex;
  flex-wrap: wrap;
  border: var(--rs-line) var(--rc-line) solid;
  position: relative;
}

.c-list--anchors .c-list__item:focus-within,
.c-list--anchors .c-list__item:focus,
.c-list--anchors .c-list__item--focus {
  z-index: var(--z-foreground);
}

.c-list--anchors .c-list__item::before,
.c-list--anchors .c-list__item::after {
  content: "";
  position: absolute;
  pointer-events: none;
  inset: 0;
}

.c-list--anchors .c-list__item::after {
  background: var(--vc-brand-alt);
  opacity: 0;
  mix-blend-mode: darken;
  transition: opacity 200ms linear;
}

.c-list--anchors .c-list__item:hover::after {
  opacity: 0.3;
}

.c-list--anchors .c-list__item--noFocusStyle:hover::after {
  opacity: 0;
}

.c-list--anchors .c-list__item::before {
  will-change: filter;
  background-image: linear-gradient(270deg, var(--rg-brand));
  filter: blur(20px);
  opacity: 0;
  transform: scaleX(0.1) scaleY(0.7);
  transition: 300ms opacity linear, 600ms transform cubic-bezier(0.3, 0.7, 0, 1);
}

.c-list--anchors .c-list__item:focus-within::before,
.c-list--anchors .c-list__item--focus::before {
  opacity: 1;
  transform: scaleX(1) scaleY(0.8);
}

.c-list--anchors .c-list__item--noFocusStyle::before {
  display: none;
}

.c-list--anchors .c-list__item:first-of-type {
  border-top-left-radius: var(--border-radius);
  border-top-right-radius: var(--border-radius);
}

.c-list--anchors .c-list__item:first-of-type .c-list__parcel:first-of-type {
  border-top-left-radius: var(--border-radius);
}

.c-list--anchors .c-list__item:first-of-type .c-list__parcel:last-of-type {
  border-top-right-radius: var(--border-radius);
}

.c-list--anchors
  .c-list__item:first-of-type
  .c-list__parcel--fullwidth:first-of-type {
  border-top-left-radius: var(--border-radius);
  border-top-right-radius: var(--border-radius);
}

.c-list--anchors .c-list__item:last-of-type {
  border-bottom-left-radius: var(--border-radius);
  border-bottom-right-radius: var(--border-radius);
}

.c-list--anchors .c-list__item:last-of-type .c-list__parcel:first-of-type {
  border-bottom-left-radius: var(--border-radius);
}

.c-list--anchors .c-list__item:last-of-type .c-list__parcel:last-of-type {
  border-bottom-right-radi


 "",
  onSearchSuccess: (searchResults: SearchFormResults) => void,
  beforeSearch: () => void = noOp,
  afterSearch: () => void = noOp,
  type: SearchResultsTypes = "multi",
  page: number = 1
): void {
  if (!api) {
    throw Error(
      `makeSearch() requires an instance of the TMDB API as it's first parameter`
    );
  }

  if (!isValidSearchType(type)) {
    throw Error(`Invalid search type of ${type} sent to makeSearch()`);
  }

  // TODO: need to think of a better plan for this.
  if (term.length === 0) {
    return;
  }

  const canStore = canUseSessionStorage();
  const shortName = slugify(`Term${term}Type${type}Page${page}`);

  // check cache
  if (hasStoredQuery(shortName)) {
    const storedResults = getStoredQuery(shortName);
    if (storedResults) {
      // We're done here, scram
      return onSearchSuccess(JSON.parse(storedResults));
    }
  }

  beforeSearch();
  const results = getSearchResultByType(type, api, term, page);
  if (!results) {
    return;
  }
  if (canStore && shortName && results) {
    results.subscribe(result => {
      storeQuery(shortName, result);
    });
  }
  results.subscribe(result => {
    onSearchSuccess(result);
    afterSearch();
  });
}
import {Answer, Digit, Generator, Result} from '../../services/exercise-component';
import {randomInt} from '../../services/random-int';
import {gcd} from '../../services/gcd';
import {mulInverse} from '../../services/mul-inverse';

export class SystemOfCongruencesGenerator extends Generator<SystemOfCongruencesExercise, SystemOfCongruencesExplanationStep> {

  public generateExercise(): { exercise: SystemOfCongruencesExercise, explanation: SystemOfCongruencesExplanation } {
    const congruences: Congruence[] = [];
    while (congruences.length < 3) {
      this.tryAddCongruence(congruences);
    }

    const m = congruences.reduce((p, c) => p * c.m, 1);
    const M = congruences.map(c => m / c.m);
    const N = congruences.map((c, i) => mulInverse(M[i], c.m));
    const s = congruences.map((c, i) => c.x * M[i] * N[i]).reduce((p, c) => p + c, 0);
    const x = s % m;

    const und = {m: undefined, M: undefined, N: undefined, s: undefined, x: undefined};

    const explanationSteps: SystemOfCongruencesExplanationStep[] = [
      {...und, step: 0, hint: [{message: 'Check to make sure all modulo values are pairwise prime'}]},
      {
        ...und, m, step: 1, hint: [
          {message: 'The value of '},
          {d: {isVisible: true, cssClass: 'text-success', value: 'm'}},
          {message: ' is the product of all modulo values'},
        ]
      },
      {
        ...und, m, M, step: 2, hint: [
          {message: 'For each term, the value of '},
          {d: {isVisible: true, cssClass: 'text-warning', value: 'M'}},
          {message: ' is '},
          {d: {isVisible: true, cssClass: 'text-success', value: 'm'}},
          {message: ' divided by that terms modulo value'},
        ]
      },
      {
        ...und, m, M, N, step: 3, hint: [
          {message: 'For each term, '},
          {d: {isVisible: true, cssClass: 'text-info', value: 'N'}},
          {message: ' is the mult


ing]: string } {
  const sdk = sdks[sdkVersion];
  if (!sdk) return {};
  return coreModulesOnly
    ? sdk.coreModules
    : {
        ...sdk.coreModules,
        ...sdk.bundledModules,
      };
}

export function validateSDKVersion(sdkVersion: SDKVersion): SDKVersion {
  if (Object.keys(sdks).indexOf(sdkVersion) < 0) {
    throw new Error(
      `Invalid SDKVersion, the following versions are supported: ${Object.keys(sdks)}`
    );
  }
  return sdkVersion;
}

/**
 * Returns the list of supported SDK versions.
 */
export function getSupportedSDKVersions(): SDKVersion[] {
  return Object.keys(sdks) as SDKVersion[];
}

/**
 * Verifies whether a string is a valid semver.
 */
export function isValidSemver(version: string): boolean {
  return version === 'latest' || !!semver.validRange(version);
}
import {observable} from 'mobx'
import {Id} from 'app/models/id'

export class Post {
  id: Id
  @observable title: string
  @observable text: string

  constructor(data) {
    this.fromJson(data)
  }

  fromJson(o: any): Post {
    this.id = o.id
    this.title = o.title
    this.titleOrig = this.title
    this.text = o.text
    this.textOrig = this.text
    return this
  }

  toApiJson = (): any => {
    const o: any = {}
    if (this.id != null) o.id = this.id
    o.title = this.title
    o.text = this.text
    return o
  }

  private titleOrig: string
  private textOrig: string

  isDirty = () => {
    return (
      this.title !== this.titleOrig ||
      this.text !== this.textOrig ||
      false
    )
  }

  reset = () => {
    this.title = this.titleOrig
    this.text = this.textOrig
  }
}
import { TemplateToBinding } from '../template';
import View from '../view';

/**
 * A helper which executes a native `Event.preventDefault()` if the target of an event equals the
 * {@link module:ui/view~View#element element of the view}. It shortens the definition of a
 * {@link module:ui/view~View#template template}.
 *
 *    // In a class extending View.
 *    import preventDefault from '@ckeditor/ckeditor5-ui/src/bindings/preventdefault';
 *
 *    // ...
 *
 *    this.setTemplate( {
 *      tag: 'div',
 *
 *      on: {
 *        // Prevent the default mousedown action on this view.
 *        mousedown: preventDefault( this )
 *      }
 *    } );
 */
export default function preventDefault(view: View): TemplateToBinding;
import { Juego } from '../clases/juego'

export class Anagarama extends Juego {
    respuestaIngresada: string;
    respuesta: string;
    palabraOrdenada: string = "";
    palabraDesordenada: string = "";
    palabraIngresada: string = "";

    constructor(nombre?: string, gano?: boolean,jugador?:string){
        super("Anagrama",gano,jugador);
    }

    arrayDePalabras : Array <any >= [
        { ordenada:"amor", desordenada:"roma" },
        { ordenada:"roma", desordenada:"amor" },
        { ordenada:"base", desordenada:"sabe" },
        { ordenada:"clase", desordenada:"alces" },
        { ordenada:"libro", desordenada:"briol" },
        { ordenada:"panel", desordenada:"penal" },
        { ordenada:"agujar", desordenada:"jaguar" },
        { ordenada:"lapicera", desordenada:"paralice" },
        { ordenada:"asignatura",


nd

		S:TryPostHook("WQT_SettingsCategoryMixin", "Init", wrap(settingsCategory))
		S:TryPostHook("WQT_SettingsCheckboxMixin", "Init", wrap(settingsCheckbox))
		S:TryPostHook("WQT_SettingsSliderMixin", "Init", wrap(settingsSlider))
		S:TryPostHook("WQT_SettingsColorMixin", "Init", wrap(settingsColor))
		S:TryPostHook("WQT_SettingsDropDownMixin", "Init", wrap(settingsDropDown))
		S:TryPostHook("WQT_SettingsButtonMixin", "Init", wrap(settingsButton))
		S:TryPostHook("WQT_SettingsConfirmButtonMixin", "Init", wrap(settingsButton))
		S:TryPostHook("WQT_SettingsTextInputMixin", "Init", wrap(settingsTextInput))
		S:TryPostHook("WQT_ListButtonMixin", "Update", wrap(listButton))
	end
end


{DataFeeder, DataProvider};
use orml_utilities::with_transaction_result;
use primitives::CurrencyId;
use sp_runtime::traits::{CheckedDiv, CheckedMul};
use support::{ExchangeRateProvider, Price, PriceProvider};

mod default_weight;
mod mock;
mod tests;

pub trait WeightInfo {
	fn lock_price() -> Weight;
	fn unlock_price() -> Weight;
}

pub trait Trait: system::Trait {
	type Event: From<Event> + Into<<Self as system::Trait>::Event>;

	/// The data source, such as Oracle.
	type Source: DataProvider<CurrencyId, Price> + DataFeeder<CurrencyId, Price, Self::AccountId>;

	/// The stable currency id, it should be XUSD in Shadows.
	type GetStableCurrencyId: Get<CurrencyId>;

	/// The fixed ingester of stable currency, it should be 1 USD in Shadows.
	type StableCurrencyFixedPrice: Get<Price>;

	/// The staking currency id, it should be DOT in Shadow.
	type GetStakingCurrencyId: Get<CurrencyId>;

	/// The liquid currency id, it should be LDOT in Shadow.
	type GetLiquidCurrencyId: Get<CurrencyId>;

	/// The origin which may lock and unlock ingester feed to system.
	type LockOrigin: EnsureOrigin<Self::Origin>;

	/// The provider of the exchange rate between liquid currency and staking
	/// currency.
	type LiquidStakingExchangeRateProvider: ExchangeRateProvider;

	/// Weight information for the extrinsics in this module.
	type WeightInfo: WeightInfo;
}

decl_event!(
	pub enum Event {
		/// Lock price. \[currency_id, locked_price\]
		LockPrice(CurrencyId, Price),
		/// Unlock price. \[currency_id\]
		UnlockPrice(CurrencyId),
	}
);

decl_storage! {
	trait Store for Module<T: Trait> as Ingester {
		/// Mapping from currency id to it's locked price
		LockedPrice get(fn locked_price): map hasher(twox_64_concat) CurrencyId => Option<Price>;
	}
}

decl_module! {
	pub struct Module<T: Trait> for enum Call where origin: T::Origin {
		fn deposit_event() = default;

		const GetStableCurrencyId: CurrencyId = T::GetStableCurrencyId::get();
		const StableCurrencyFixedPrice: Price = T::StableCurrencyFixedPrice::get();
		const GetStakingCurrencyId: CurrencyId = T::GetStakingCurrencyId::get();
		const GetLiquidCurrencyId: CurrencyId = T::GetLiquidCurrencyId::get();

		/// Lock the price and feed it to system.
		///
		/// The dispatch origin of this call must be `LockOrigin`.
		///
		/// - `currency_id`: currency type.
		#[weight = (T::WeightInfo::lock_price(), DispatchClass::Operational)]
		pub fn lock_price(origin, currency_id: CurrencyId) {
			with_transaction_result(|| {
				T::LockOrigin::ensure_origin(origin)?;
				<Module<T> as PriceProvider<CurrencyId>>::lock_price(currency_id);
				Ok(())
			})?;
		}

		/// Unlock the price and get the price from `PriceProvider` again
		///
		/// The dispatch origin of this call must be `LockOrigin`.
		///
		/// - `currency_id`: currency type.
		#[weight = (T::WeightInfo::unlock_price(), DispatchClass::Operational)]
		pub fn unlock_price(origin, currency_id: CurrencyId) {
			with_transaction_result(|| {
				T::LockOrigin::ensure_origin(origin)?;
				<Module<T> as PriceProvider<CurrencyId>>::unlock_price(currency_id);
				Ok(())
			})?;
		}


, 0x6C}
	decoder = NewBinaryDecoder(bytesInsufficientData)
	_, err = decoder.GetString()
	assert(t, err, ErrEOF)
}

func TestBytesEncodingDecoding(t *testing.T) {
	buffer := make([]byte, numValues*4+((numValues*(numValues+1))/2))
	encoder := NewBinaryEncoder(buffer)

	randValues := make([][]byte, numValues)
	for i := 0; i < numValues; i++ {
		randValue := randomBytes(i)
		encoder.WriteBytes(randValue)
		randValues[i] = randValue
	}

	decoder := NewBinaryDecoder(buffer)
	for i := 0; i < numValues; i++ {
		value, err := decoder.GetBytes()
		checkErr(t, err)
		assert(t, value, randValues[i])
	}

	nilBytes := []byte{0xFF, 0xFF, 0xFF, 0xFF}
	decoder = NewBinaryDecoder(nilBytes)
	bytes, err := decoder.GetBytes()
	checkErr(t, err)
	assert(t, bytes, ([]byte)(nil))

	bytesNegativeLength := []byte{0xFF, 0xFF, 0xFF, 0xFE}
	decoder = NewBinaryDecoder(bytesNegativeLength)
	_, err = decoder.GetBytes()
	assert(t, err, ErrEOF)

	bytesInsufficientData := []byte{0x00, 0x00, 0x00, 0x03, 0x6C}
	decoder = NewBinaryDecoder(bytesInsufficientData)
	_, err = decoder.GetBytes()
	assert(t, err, ErrEOF)
}

func TestEncoderSize(t *testing.T) {
	encoder := NewBinaryEncoder(make([]byte, 8))
	assert(t, encoder.Size(), int32(8))
}

func TestEncoderReserve(t *testing.T) {
	expectingEncodedLength := []byte{0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01}
	writeLength := func(encoder Encoder) {
		encoder.WriteInt32(1)
		encoder.Reserve(&LengthSlice{})
		encoder.WriteInt64(1)
		encoder.WriteInt32(1)
		encoder.UpdateReserved()
		encoder.WriteInt32(1)
	}

	expectingEncodedCRC := []byte{0x00, 0x00, 0x00, 0x01, 0x31, 0xB2, 0xDF, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01}
	writeCRC := func(encoder Encoder) {
		encoder.WriteInt32(1)
		encoder.Reserve(&CrcSlice{})
		encoder.WriteInt64(1)
		encoder.WriteInt32(1)
		encoder.UpdateReserved()
		encoder.WriteInt32(1)
	}

	sizer := NewSizingEncoder()
	writeLength(sizer)
	size := sizer.Size()
	assert(t, size, int32(4+4+8+4+4))

	bytes := make([]byte, size)
	encoder := NewBinaryEncoder(bytes)
	writeLength(encoder)
	assert(t, bytes, expectingEncodedLength)

	bytes = make([]byte, size)
	encoder = NewBinaryEncoder(bytes)
	writeCRC(encoder)
	assert(t, bytes, expectingEncodedCRC)
}

func TestSizingEncoder(t *testing.T) {
	int8encoder := NewSizingEncoder()
	for i := 0; i < numValues; i++ {
		int8encoder.WriteInt8(0)
	}
	assert(t, int(int8encoder.Size()), numValues)

	int16encoder := NewSizingEncoder()
	for i := 0; i < numValues; i++ {
		int16encoder.WriteInt16(0)
	}
	assert(t, int(int16encoder.Size()), numValues*2)

	int32encoder := NewSizingEncoder()
	for i := 0; i < numValues; i++ {
		int32encoder.WriteInt32(0)
	}
	assert(t, int(int32encoder.Size()), numValues*4)

	int64encoder := NewSizingEncoder()
	for i := 0; i < numValues; i++ {
		int64encoder.WriteInt6


 <__tz_convert+0x60>  // b.any
  419888:	88037c01 	stxr	w3, w1, [x0]
  41988c:	35ffff83 	cbnz	w3, 41987c <__tz_convert+0x4c>
  419890:	54000b01 	b.ne	4199f0 <__tz_convert+0x1c0>  // b.any
  419894:	d0000440 	adrp	x0, 4a3000 <frame_hdr_cache+0x60>
  419898:	710002df 	cmp	w22, #0x0
  41989c:	91170000 	add	x0, x0, #0x5c0
  4198a0:	fa401300 	ccmp	x24, x0, #0x0, ne  // ne = any
  4198a4:	54000620 	b.eq	419968 <__tz_convert+0x138>  // b.none
  4198a8:	912bc260 	add	x0, x19, #0xaf0
  4198ac:	b9407000 	ldr	w0, [x0, #112]
  4198b0:	340005c0 	cbz	w0, 419968 <__tz_convert+0x138>
  4198b4:	d0000440 	adrp	x0, 4a3000 <frame_hdr_cache+0x60>
  4198b8:	b945f800 	ldr	w0, [x0, #1528]
  4198bc:	350005e0 	cbnz	w0, 419978 <__tz_convert+0x148>
  4198c0:	aa1803e2 	mov	x2, x24
  4198c4:	d2800001 	mov	x1, #0x0                   	// #0
  4198c8:	aa1703e0 	mov	x0, x23
  4198cc:	d2800014 	mov	x20, #0x0                   	// #0
  4198d0:	940090c8 	bl	43dbf0 <__offtime>
  4198d4:	35000820 	cbnz	w0, 4199d8 <__tz_convert+0x1a8>
  4198d8:	b9004fbf 	str	wzr, [x29, #76]
  4198dc:	f9002bbf 	str	xzr, [x29, #80]
  4198e0:	912bc260 	add	x0, x19, #0xaf0
  4198e4:	52800002 	mov	w2, #0x0                   	// #0
  4198e8:	9101d000 	add	x0, x0, #0x74
  4198ec:	885f7c01 	ldxr	w1, [x0]
  4198f0:	8803fc02 	stlxr	w3, w2, [x0]
  4198f4:	35ffffc3 	cbnz	w3, 4198ec <__tz_convert+0xbc>
  4198f8:	7100043f 	cmp	w1, #0x1
  4198fc:	5400062c 	b.gt	4199c0 <__tz_convert+0x190>
  419900:	b4000594 	cbz	x20, 4199b0 <__tz_convert+0x180>
  419904:	340004b6 	cbz	w22, 419998 <__tz_convert+0x168>
  419908:	f9401683 	ldr	x3, [x20, #40]
  41990c:	f9402ba1 	ldr	x1, [x29, #80]
  419910:	aa1403e2 	mov	x2, x20
  419914


Code

Language modes

Python

Python mode

<textarea id="code" name="code">
# Literals
1234
0.0e101
.123
0b01010011100
0o01234567
0x0987654321abcdef
7
2147483647
3L
79228162514264337593543950336L
0x100000000L
79228162514264337593543950336
0xdeadbeef
3.14j
10.j
10j
.001j
1e100j
3.14e-10j

# String Literals
'For\''
"God\""
"""so loved
the world"""
'''that he gave
his only begotten\' '''
'that whosoever believeth \
in him'
''

# Identifiers
__a__
a.b
a.b.c

#Unicode identifiers on Python3
# a = x\ddot
a⃗ = ẍ
# a = v\dot
a⃗ = v̇

#F\vec = m \cdot a\vec
F⃗ = m•a⃗

# Operators
+ - * / % & | ^ ~ < >
== != <= >= <> << >> // **
and or not in is

#infix matrix multiplication operator (PEP 465)
A @ B

# Delimiters
() [] {} , : ` = ; @ .  # Note that @ and . require the proper context on Python 2.
+= -= *= /= %= &= |= ^=
//= >>= <<= **=

# Keywords
as assert break class continue def del elif else except
finally for from global if import lambda pass raise
return try while with yield

# Python 2 Keywords (otherwise Identifiers)
exec print

# Python 3 Keywords (otherwise Identifiers)
nonlocal

# Types
bool classmethod complex dict enumerate float frozenset int list object
property reversed set slice staticmethod str super tuple type

# Python 2 Types (otherwise Identifiers)
basestring buffer file long unicode xrange

# Python 3 Types (otherwise Identifiers)
bytearray bytes filter map memoryview open range zip

# Some Example code
import os
from package import ParentClass

@nonsenseDecorator
def doesNothing():
    pass

class ExampleClass(ParentClass):
    @staticmethod
    def example(inputStr):
        a = list(inputStr)
        a.reverse()
        return ''.join(a)

    def __init__(self, mixin = 'Hello'):
        self.mixin = mixin

</textarea>

Cython mode

<textarea id="code-cython" name="code-cython">

import numpy as np
cimport cython
from libc.math cimport sqrt

@cython.boundscheck(False)
@cython.wraparound(False)
def pairwise_cython(double[:, ::1] X):
    cdef int M = X.shape[0]
    cdef int N = X.shape[1]
    cdef double tmp, d
    cdef double[:, ::1] D = np.empty((M, M), dtype=np.float64)
    for i in range(M):
        for j in range(M):
            d


�条件に一致するレコードを取得します。',
  })
  @Get()
  async findAll(@Query() req): Promise<ENTITY[]> {
    return this.service.findAll(req);
  }

  /**
   * 単一レコード取得
   * @param req 検索条件
   * @return 検索結果
   */
  @ApiOperation({
    title: '単一レコード取得',
    description: '検索条件に一致するレコードを1件取得します。',
  })
  @HttpCode(HttpStatus.OK)
  @ApiResponse({ status: HttpStatus.OK, description: '検索結果' })
  @ApiResponse({ status: HttpStatus.FORBIDDEN, description: 'Forbidden.' })
  @Get(':id')
  async findById(@Param('id') id: number): Promise<ENTITY> {
    return this.service.findByIds(id);
  }

  /**
   * レコード登録
   * @param entity 登録内容
   * @return 登録したレコード
   */
  @ApiOperation({
    title: 'レコード登録',
    description: '対象テーブルにレコードを登録します。',
  })
  @ApiResponse({ status: HttpStatus.CREATED, description: '登録したレコード' })
  @Post()
  @HttpCode(HttpStatus.CREATED)
  async create(@Body() entity: ENTITY): Promise<ENTITY> {
    return this.service.create(entity);
  }

  /**
   * レコード更新
   * @param entity 更新対象
   * @return 更新したレコード
   */
  @ApiOperation({
    title: 'レコード更新',
    description: '対象レコードを更新します。',
  })
  @ApiResponse({ status: HttpStatus.OK, description: '更新したレコード' })
  @Put()
  @HttpCode(HttpStatus.OK)
  async update(@Body() entity: ENTITY): Promise<ENTITY> {
    return this.service.update(entity);
  }

  /**
   * レコード削除
   * @param req 削除条件
   */
  @ApiOperation({
    title: 'レコード削除',
    description: '対象レコードを削除します。',
  })
  @ApiResponse({ status: HttpStatus.NO_CONTENT, description: '削除成功' })
  @Delete()
  @HttpCode(HttpStatus.NO_CONTENT)
  async delete(@Body() entity: ENTITY): Promise<void> {
    this.service.delete(entity);
  }

}
/*
 * Copyright (c) 2020, salesforce.com, inc.
 * All rights reserved.
 * SPDX-License-Identifier: MIT
 * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
 */
export class MapUtils {
    public static filter<K, V>(
        map: Map<K, V>,
        predicate: (k: K, v: V) => boolean
    ) {
        const aMap = new Map<K, V>();
        if (map == null) {
            return aMap;
        }
        const entries = Array.from(map.entries());
        for (const [key, value] of entries) {
            if (predicate(key, value) === true) {
                aMap.set(key, value);
            }
        }
        return aMap;
    }
}

// tslint:disable-next-line: max-classes-per-file
export class SetUtils {
    public static filter<V>(set: Set<V>, predicate: (v: V) => boolean) {
        const aSet = new Set<V>();
        if (set == null) {
            return aSet;
        }
        const entries = Array.from(set.entries());
        for (const [value] of entries) {
            if (predicate(value) === true) {
                aSet.add(value);
            }
        }
        return aSet;
    }
}

// tslint:disable-next-line: max-classes-per-file
export class CommandLineUtils {
    public static platformFlagIsIOS(input: string): boolean {
        if (input) {
            re


5.18991 7.4 4.32991L6.53 2.52991C4.04 3.71991 2.5 6.12992 2.5 8.80992V8.99992H4.5V8.80992ZM12 21.9999C13.1 21.9999 14 21.0999 14 19.9999H10C10 21.0999 10.9 21.9999 12 21.9999ZM20 17.3499V18.9999H4V17.3499L6 15.4699V10.3199C6 7.39991 7.56 5.09992 10 4.33992V3.95991C10 2.53991 11.49 1.45991 12.99 2.19991C13.64 2.51991 14 3.22991 14 3.95991V4.34991C16.44 5.09991 18 7.40991 18 10.3299V15.4799L20 17.3499Z"] {
            color: var(--yt-spec-grey-3);
            d: path("M 7.58 4.08 L 6.15 2.65 C 3.75 4.48 2.17 7.3 2.03 10.5 h 2 c 0.15 -2.65 1.51 -4.97 3.55 -6.42 Z m 12.39 6.42 h 2 c -0.15 -3.2 -1.73 -6.02 -4.12 -7.85 l -1.42 1.43 c 2.02 1.45 3.39 3.77 3.54 6.42 Z M 18 11 c 0 -3.07 -1.64 -5.64 -4.5 -6.32 V 4 c 0 -0.83 -0.67 -1.5 -1.5 -1.5 s -1.5 0.67 -1.5 1.5 v 0.68 C 7.63 5.36 6 7.92 6 11 v 5 l -2 2 v 1 h 16 v -1 l -2 -2 v -5 Z m -6 11 c 0.14 0 0.27 -0.01 0.4 -0.04 c 0.65 -0.14 1.18 -0.58 1.44 -1.18 c 0.1 -0.24 0.15 -0.5 0.15 -0.78 h -4 c 0.01 1.1 0.9 2 2.01 2 Z")
        }

        /* Bell None */
        [d="M3.85\,3.15L3.15\,3.85l3.48\,3.48C6.22\,8.21\,6\,9.22\,6\,10.32v5.15l-2\,1.88V19h14.29l1.85\,1.85l0.71-0.71L3.85\,3.15z M5\,18 v-0.23l2-1.88v-5.47c0-0.85\,0.15-1.62\,0.41-2.3L17.29\,18H5z M10\,20h4c0\,1.1-0.9\,2-2\,2S10\,21.1\,10\,20z M9.28\,5.75l-0.7-0.7 c0.43-0.29\,0.9-0.54\,1.42-0.7V3.96c0-1.42\,1.49-2.5\,2.99-1.76C13.64\,2.52\,14\,3.23\,14\,3.96v0.39c2.44\,0.75\,4\,3.06\,4\,5.98v4.14l-1-1 v-3.05c0-2.47-1.19-4.36-3.13-5.1c-1.26-0.53-2.64-0.5-3.84\,0.03C9.76\,5.46\,9.52\,5.59\,9.28\,5.75z"] {
            color: var(--yt-spec-grey-3);
            d: path


CUSDT|okex5-wtcusdt|WTC|1
WXTUSDT|okex5-wxtusdt|WXT|100
XCHUSDT|okex5-xchusdt|XCH|0.01
XECUSDT|okex5-xecusdt|XEC|100000
XEMUSDT|okex5-xemusdt|XEM|10
XLMUSDT|okex5-xlmusdt|XLM|1
XMRUSDT|okex5-xmrusdt|XMR|0.01
XPOUSDT|okex5-xpousdt|XPO|1000
XPRUSDT|okex5-xprusdt|XPR|100
XSRUSDT|okex5-xsrusdt|XSR|1000
XTZUSDT|okex5-xtzusdt|XTZ|0.1
XUCUSDT|okex5-xucusdt|XUC|1
YEEUSDT|okex5-yeeusdt|YEE|1000
YFIUSDT|okex5-yfiusdt|YFI|0.0001
YFIIUSDT|okex5-yfiiusdt|YFII|0.001
YOUUSDT|okex5-youusdt|YOU|100
YOYOWUSDT|okex5-yoyowusdt|YOYO|100
ZECUSDT|okex5-zecusdt|ZEC|0.01
ZENUSDT|okex5-zenusdt|ZEN|0.01
ZILUSDT|okex5-zilusdt|ZIL|10
ZKSUSDT|okex5-zksusdt|ZKS|1
ZRXUSDT|okex5-zrxusdt|ZRX|1
ZYROUSDT|okex5-zyrousdt|ZYRO|100
ETHBTC|okex5-ethbtc|ETH|0.001
OKBBTC|okex5-okbbtc|OKB|0.1
OKTBTC|okex5-oktbtc|OKT|0.01
LTCBTC|okex5-ltcbtc|LTC|0.01
DOTBTC|okex5-dotbtc|DOT|0.1
DOGEBTC|okex5-dogebtc|DOGE|1
EOSBTC|okex5-eosbtc|EOS|0.1
ETCBTC|okex5-etcbtc|ETC|0.1
XRPBTC|okex5-xrpbtc|XRP|1
AAVEBTC|okex5-aavebtc|AAVE|0.01
ACTBTC|okex5-actbtc|ACT|100
ADABTC|okex5-adabtc|ADA|1
AETBTC|okex5-aetbtc|AE|10
ALGOBTC|okex5-algobtc|ALGO|1
ALPHABTC|okex5-alphabtc|ALPHA|1
ANTBTC|okex5-antbtc|ANT|0.1
ARDRBTC|okex5-ardrbtc|ARDR|1
ARKBTC|okex5-arkbtc|ARK|1
ATOMBTC|okex5-atombtc|ATOM|0.1
AVAXBTC|okex5-avaxbtc|AVAX|0.1
BADGERBTC|okex5-badgerbtc|BADGER|0.01
BALBTC|okex5-balbtc|BAL|0.01
BATBTC|okex5-batbtc|BAT|1
BCDBTC|okex5-bcdbtc|BCD|1
BCHBTC|okex5-bchbtc|BCH|0.001
BCXBTC|okex5-bcxbtc|BCX|100
BHPBTC|okex5-bhpbtc|BHP|1
BNTBTC|okex5-bntbtc|BNT|0.1
BSVBTC|okex5-bsvbtc|BSV|0.01
BTGBTC|okex5-btgbtc|BTG|0.01
BTMBTC|okex5-bt


-decoration: none; }
.files .foot .create .link:active { background-color: #8c42ed3b; outline: 5px solid #8c42ed3b; }
.files .foot .create .menu { top: 40px; }

/* Editor */

.editor { background-color: #F7F7FC; float: left; width: calc(100% - 280px); -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -o-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box ; -webkit-transition: all 0.6s; -moz-transition: all 0.6s; -o-transition: all 0.6s; -ms-transition: all 0.6s; transition: all 0.6s ; }
.editor .CodeMirror { height: calc(100vh - 79px); visibility: hidden; }
.editor textarea { width: 100%; height: 800px; white-space: pre; }
.editor .title { margin-left: 20px; }
.editor .editor-head {
	padding: 15px 20px; padding-left: 45px; font-size: 18px; font-weight: lighter; border: 1px solid #EEEEF5;
    white-space: nowrap; overflow: hidden;
}
.editor.loaded .CodeMirror { visibility: inherit; }
.editor.error .CodeMirror { display: none; }
.editor .button.save { min-width: 30px; text-align: center; -webkit-transition: all 0.3s; -moz-transition: all 0.3s; -o-transition: all 0.3s; -ms-transition: all 0.3s; transition: all 0.3s ; }
.editor .button.save.done { min-width: 80px; }
.editor .error-message { text-align: center; padding: 50px; }

.editor .CodeMirror-foldmarker {
	line-height: .3; cursor: pointer; background-color: #ffeb3b61; text-shadow: none; font-family: inherit;
	color: #050505; border: 1px solid #ffdf7f; padding: 0px 5px;
}
.editor .CodeMirror-activeline-background { background-color: #F6F6F6 !important; }/*
  MDN-LIKE Theme - Mozilla
  Ported to CodeMirror by Peter Kroon <plakroon@gmail.com>
  Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues
  GitHub: @peterkroon

  The mdn-like theme is inspired on the displayed code examples at: https://developer.mozilla.org/en-US/docs/Web/CSS/animation

*/
.cm-s-mdn-like.CodeMirror { color: #666; background-color: #fff; }
.cm-s-mdn-like div.CodeMirror-selected { background: #fefdb5; }
.cm-s-mdn-like .CodeMirror-line::selection, .cm-s-mdn-like .CodeMirror-line > span::selection, .cm-s-mdn-like .CodeMirror-line > span > span::selection { background: #fefdb5; }
.cm-s-mdn-like .CodeMirror-line::-moz-selection, .cm-s-mdn-like .CodeMirror-line > span::-moz-selection, .cm-s-mdn-like .CodeMirror-line > span > span::-moz-selection { background: #fefdb5; }

.cm-s-mdn-like .CodeMirror-gutters { background: #f8f8f8; color: #333; }
.cm-s-mdn-like .CodeMirror-linenumber { color: #aaa; padding-left: 8px; }
.cm-s-mdn-l


/*
 * Copyright (C) 2014 Philipp Zabel, Pengutronix
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * PWM (mis)used as clock output
 */
#include <linux/clk-provider.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pwm.h>

struct clk_pwm {
	struct clk_hw hw;
	struct pwm_device *pwm;
	u32 fixed_rate;
};

static inline struct clk_pwm *to_clk_pwm(struct clk_hw *hw)
{
	return container_of(hw, struct clk_pwm, hw);
}

static int clk_pwm_prepare(struct clk_hw *hw)
{
	struct clk_pwm *clk_pwm = to_clk_pwm(hw);

	return pwm_enable(clk_pwm->pwm);
}

static void clk_pwm_unprepare(struct clk_hw *hw)
{
	struct clk_pwm *clk_pwm = to_clk_pwm(hw);

	pwm_disable(clk_pwm->pwm);
}

static unsigned long clk_pwm_recalc_rate(struct clk_hw *hw,
					 unsigned long parent_rate)
{
	struct clk_pwm *clk_pwm = to_clk_pwm(hw);

	return clk_pwm->fixed_rate;
}

static const struct clk_ops clk_pwm_ops = {
	.prepare = clk_pwm_prepare,
	.unprepare = clk_pwm_unprepare,
	.recalc_rate = clk_pwm_recalc_rate,
};

static int clk_pwm_probe(struct platform_device *pdev)
{
	struct device_node *node = pdev->dev.of_node;
	struct clk_init_data init = {};
	struct clk_pwm *clk_pwm;
	struct pwm_device *pwm;
	const char *clk_name;
	struct clk *clk;
	int ret;

	clk_pwm = devm_kzalloc(&pdev->dev, sizeof(*clk_pwm), GFP_KERNEL);
	if (!clk_pwm)
		return -ENOMEM;

	pwm = devm_pwm_get(&pdev->dev, NULL);
	if (IS_ERR(pwm))
		return PTR_ERR(pwm);

	if (!pwm->period) {
		dev_err(&pdev->dev, "invalid PWM period\n");
		return -EINVAL;
	}

	if (of_property_read_u32(node, "clock-frequency", &clk_pwm->fixed_rate))
		clk_pwm->fixed_rate = NSEC_PER_SEC / pwm->period;

	if (pwm->period != NSEC_PER_SEC / clk_pwm->fixed_rate &&
	    pwm->period != DIV_ROUND_UP(NSEC_PER_SEC, clk_pwm->fixed_rate)) {
		dev_err(&pdev->dev,
			"clock-frequency does not match PWM period\n");
		return -EINVAL;
	}

	ret = pwm_config(pwm, (pwm->period + 1) >> 1, pwm->period);
	if (ret < 0)
		return ret;

	clk_name = node->name;
	of_property_read_string(node, "clock-output-names", &clk_name);

	init.name = clk_name;
	init.ops = &clk_pwm_ops;
	init.flags = CLK_IS_BASIC | CLK_IS_ROOT;
	init.num_parents = 0;

	clk_pwm->pwm = pwm;
	clk_pwm->hw.init = &init;
	clk = devm_clk_register(&pdev->dev, &clk_pwm->hw);
	if (IS_ERR(clk))
		return PTR_ERR(clk);

	return of_clk_add_provider(node, of_clk_src_simple_get, clk);
}

static int clk_pwm_remove(struct platform_device *pdev)
{
	of_clk_del_provider(pdev->dev.of_node);

	return 0;
}

static const struct of_device_id clk_pwm_dt_ids[] = {
	{ .compatible = "pwm-clock" },
	{ }
};
MODULE_DEVICE_TABLE(of, clk_pwm_dt_ids);

static struct platform_driver clk_pwm_driver = {
	.probe = clk_pwm_probe,
	.remove = clk_pwm_remove,
	.driver = {
		.name = "pwm-clock",
		.of_match_table = of_match_ptr(clk_pwm_dt_ids),
	},
};

module_platform_driver(clk_pwm_driver);

MODULE_AUTHOR("Philipp Zabel <p.zabel@pengutronix.de>");
MODULE_DESCRIPTION("PWM clock driver");
MODULE_LICENSE("GPL");


 the serviceMonitor and deletes it. Returns an error if one occurs.
func (c *FakeServiceMonitors) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {
	_, err := c.Fake.
		Invokes(testing.NewDeleteActionWithOptions(servicemonitorsResource, c.ns, name, opts), &v1.ServiceMonitor{})

	return err
}

// DeleteCollection deletes a collection of objects.
func (c *FakeServiceMonitors) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {
	action := testing.NewDeleteCollectionActionWithOptions(servicemonitorsResource, c.ns, opts, listOpts)

	_, err := c.Fake.Invokes(action, &v1.ServiceMonitorList{})
	return err
}

// Patch applies the patch and returns the patched serviceMonitor.
func (c *FakeServiceMonitors) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ServiceMonitor, err error) {
	emptyResult := &v1.ServiceMonitor{}
	obj, err := c.Fake.
		Invokes(testing.NewPatchSubresourceActionWithOptions(servicemonitorsResource, c.ns, name, pt, data, opts, subresources...), emptyResult)

	if obj == nil {
		return emptyResult, err
	}
	return obj.(*v1.ServiceMonitor), err
}
/*
This file is part of the KubeVirt project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Copyright The KubeVirt Authors.
*/

// Code generated by client-gen. DO NOT EDIT.

package scheme

import (
	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
	schema "k8s.io/apimachinery/pkg/runtime/schema"
	serializer "k8s.io/apimachinery/pkg/runtime/serializer"
	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
	cdiv1beta1 "kubevirt.io/containerized-data-importer-api/pkg/apis/core/v1beta1"
	uploadv1beta1 "kubevirt.io/containerized-data-importer-api/pkg/apis/upload/v1beta1"
)

var Scheme = runtime.NewScheme()
var Codecs = serializer.NewCodecFactory(Scheme)
var ParameterCodec = runtime.NewParameterCodec(Scheme)
var localSchemeBuilder = runtime.SchemeBuilder{
	cdiv1beta1.AddToScheme,
	uploadv1beta1.AddToScheme,
}

// AddToScheme adds all types of this clientset into the given scheme. This allows composition
// of clientsets, like in:
//
//	import (
//	  "k8s.io/client-go/kubernetes"
//	  clientsetscheme "k8s.io/client-go/kubernetes/scheme"
//	  aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme"
//	)
//
//	kclientset, _ := kubernetes.NewForConfig(c)
//	_ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme)
//
// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types
// correctly.
var AddToScheme = localSchemeBuilder.AddToScheme

func init() {
	v1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"})
	utilruntime.Must(AddToScheme(Scheme))
}
/*
T


AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE INC.\n * OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n:host {\n    overflow: hidden;\n}\n\n.shadow-split-widget {\n    display: flex;\n    overflow: hidden;\n}\n\n.shadow-split-widget-contents {\n    display: flex;\n    position: relative;\n    flex-direction: column;\n    contain: layout size style;\n}\n\n.shadow-split-widget-sidebar {\n    flex: none;\n}\n\n.shadow-split-widget-main, .shadow-split-widget-sidebar.maximized {\n    flex: auto;\n}\n\n.shadow-split-widget.hbox > .shadow-split-widget-resizer {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    width: 6px;\n    z-index: 500;\n}\n\n.shadow-split-widget.vbox > .shadow-split-widget-resizer {\n    position: absolute;\n    left: 0;\n    right: 0;\n    height: 6px;\n    z-index: 500;\n}\n\n.shadow-split-widget.vbox > .shadow-split-widget-sidebar.no-default-splitter {\n    border: 0 !important;\n}\n\n.shadow-split-widget.vbox > .shadow-split-widget-sidebar:not(.maximized) {\n    border: 0;\n    border-top: 1px solid var(--divider-color);\n}\n\n.shadow-split-widget.vbox > .shadow-split-widget-sidebar:first-child:not(.maximized) {\n    border: 0;\n    border-bottom: 1px solid var(--divider-color);\n}\n\n.shadow-split-widget.hbox > .shadow-split-widget-sidebar:not(.maximized) {\n    border: 0;\n    border-left: 1px solid var(--divider-color);\n}\n\n.shadow-split-widget.hbox > .shadow-split-widget-sidebar:first-child:not(.maximized) {\n    border: 0;\n    border-right: 1px solid var(--divider-color);\n}\n\n:host-context(.disable-resizer-for-elements-hack) .shadow-split-widget-resizer {\n    pointer-events: none;\n}\n\n/*# sourceURL=ui/splitWidget.css */";Runtime.cachedResources["ui/toolbar.css"]="/*\n * Copyright (c) 2014 The Chromium Authors. All rights reserved.\n * Use of this source code is governed by a BSD-style license that can be\n * found in the LICENSE file.\n */\n\n:host {\n    flex: none;\n    padding: 0 2px;\n}\n\n.toolbar-shadow {\n    position: relative;\n    white-space: nowrap;\n    height: 26px;\n    overflow: hidden;\n    z-index: 12;\n    display: flex;\n    flex: none;\n    align-items: center;\n}\n\n.toolbar-shadow.wrappable {\n    flex-wrap: wrap;\n    overflow: visible;\n}\n\n.toolbar-shadow.toolbar-grow-vertical {\n    height: initial;\n}\n\n.toolbar-shadow.vertical {\n    flex-direction: column;\n    height: auto;\n    align-items: flex-start;\n}\n\n.toolbar-item {\n    position: relative;\n    display: flex;\n    background-color: transparent;\n    flex: none;\n    align-items: center;\n    justify-content: center;\n    padding: 0;\n    height: 26px;\n    border: none;\n    white-