{ background: white; }
                        .container { box-shadow: none; }
                    }
                </style>

                <button class="print-btn" onclick="window.print()">📄 Imprimir / Guardar PDF</button>

🏥 Reporte Médico de Triage

Sistema de Gestión Médica - ${new Date().toLocaleDateString(
        "es-ES"
      )}

📋 Información del Paciente

Documento:

${selectedTriage.patientDocument ||
      "No especificado"
      }

Doctor:

${authUser?.fullname || "No especificado"
      } (${authUser?.document || "N/A"})

Estado:

                                        ${selectedTriage.state ||
      "No especificado"
      }

Fecha de ingreso:

${new Date().toLocaleString(
        "es-ES"
      )}

🩺 Motivo de Consulta

                                ${selectedTriage.visitDetail ||
      "No se especificó motivo de consulta"
      }

🎯 Nivel de Triage

                                    ${selectedTriage.triageLevel ||
      editData.triageLevel ||
      "No evaluado"
      }

🩹 Síntomas Reportados

                                ${selectedTriage.symptoms &&
        selectedTriage.symptoms.length > 0
        ? `

                                        ${selectedTriage.symptoms
          .map(
            (symptom) => `<li>${symptom}</li>`
          )
          .join("")}


've reached 16 byte alignment
	jne .MBNG_PRELOOP

.MBNG_SSE:

	cmp $4, %ecx #; if there are frames left, but less than 4
	jnge .MBNG_NONALIGN #; we can't run SSE

.MBNG_SSELOOP:

	movaps	(%esi), %xmm0 #; source => xmm0
	addps	(%edi), %xmm0 #; mix with destination
	movaps  %xmm0, (%edi) #; copy result to destination

	addl $16, %edi #; dst+=4
	addl $16, %esi #; src+=4

	subl $4, %ecx #; nframes-=4
	cmp $4, %ecx
	jge .MBNG_SSELOOP

	cmp $0, %ecx
	je .MBNG_END

	#; if there are remaining frames, the nonalign code will do nicely
	#; for the rest 1-3 frames.

.MBNG_NONALIGN:
	#; not aligned!

	movss (%esi), %xmm0 #; src => xmm0
	addss (%edi), %xmm0 #; xmm0 += dst
	movss %xmm0, (%edi) #; xmm0 => dst

	addl $4, %edi
	addl $4, %esi

	decl %ecx
	jnz .MBNG_NONALIGN

.MBNG_END:

	popl %esi
	popl %edi
#;	popl %ecx
	popl %ebx
#;	popl %eax

	#; return
	leave
	ret

.size	x86_sse_mix_buffers_no_gain, .-x86_sse_mix_buffers_no_gain

#; void x86_sse_apply_gain_to_buffer (float *buf, long nframes, float gain);

.globl x86_sse_apply_gain_to_buffer
	.type	x86_sse_apply_gain_to_buffer,@function

x86_sse_apply_gain_to_buffer:
#; 8(%ebp)	= float	*buf 	= %edi
#; 12(%ebp) = long	nframes = %ecx
#; 16(%ebp) = float	gain    = st(0)

	pushl %ebp
	movl %esp, %ebp

	#; save %edi
	pushl %edi

	#; the real function

	#; if nframes == 0, go to end
	movl 12(%ebp), %ecx #; nframes
	cmp	$0, %ecx
	je	.AG_END

	#; create the gain buffer in %xmm1
	movss	16(%ebp), %xmm1
	shufps	$0x00, %xmm1, %xmm1

	#; Check for alignment

	movl 8(%ebp), %edi #; buf
	movl %edi, %edx #; buf => %edx
	andl $12, %edx #; mask bits 1 & 2, result = 0, 4, 8 or 12
	jz	.AG_SSE #; if buffer IS aligned

	#; PRE-LOOP
	#; we iterate 1-3 times, doing normal x87 float comparison
	#; so we reach a 16 byte aligned "buf" (=%edi) value

.AGLP_START:

	#; Load next value from the buffer
	movss (%edi), %xmm0
	mulss %xmm1, %xmm0
	movss %xmm0, (%edi)

	#; increment buffer, decrement counter
	addl $4, %edi #; buf++;

	decl %ecx   #; nframes--
	jz	.AG_END #; if we run out of frames, we go to the end

	addl $4, %edx #; one non-aligned byte less
	cmp $16, %edx
	jne .AGLP_START #; if more non-aligned frames exist, we do a do-over

.AG_SSE:

	#; We have reached the 16 byte aligned "buf" ("edi


To - vectorFrom;
}
    `
};

export const CREATE_FROM_PREFAB = {
    expanded: false,
    name: 'Create From Prefab',
    description: '😁',
    code: `
public static GameObject CreateFromPrefab(string resourcePath, Vector3 originPosition)
{
    var targetPrefab = Resources.Load(resourcePath) as GameObject;
    return GameObject.Instantiate(targetPrefab, originPosition, Quaternion.identity) as GameObject;
}
    `
};
import { ExecutorBody } from "./config";

const is = {
  string: (v: any): boolean =>
    Object.prototype.toString.call(v) === "[object String]",
  number: (v: any): boolean =>
    Object.prototype.toString.call(v) === "[object Number]",
  boolean: (v: any): boolean =>
    Object.prototype.toString.call(v) === "[object Boolean]",
  null: (v: any): boolean =>
    Object.prototype.toString.call(v) === "[object Null]",
  symbol: (v: any): boolean =>
    Object.prototype.toString.call(v) === "[object Symbol]",
  undefined: (v: any): boolean =>
    Object.prototype.toString.call(v) === "[object Undefined]",
  object: (v: any): boolean =>
    Object.prototype.toString.call(v) === "[object Object]",
  array: (v: any): boolean => Array.isArray(v)
};

/**
 * この関数は設定を精査します。不具合を見つけると例外を投げます。
 * @param config
 */
export default function validate(executor: ExecutorBody): void {
  if (!("enable" in executor)) {
    throw new Error("language-hsp3.executor.enable property is required.");
  }
  if (!is.boolean(executor.enable)) {
    throw new Error(
      "language-hsp3.executor.enable property must be of type boolean."
    );
  }

  if (!("index" in executor)) {
    throw new Error("language-hsp3.executor.index property is required.");
  }
  if (!is.string(executor.index)) {
    throw new Error(
      "language-hsp3.executor.index property must be of type boolean."
    );
  }

  if (!("paths" in executor)) {
    throw new Error("language-hsp3.executor.paths property is required.");
  }
  if (!is.object(executor.paths)) {
    throw new Error(
      "language-hsp3.executor.paths property requires a structure."
    );
  }

  for (let name in executor.paths) {
    const struct = executor.paths[name];

    name = `"${name}"`;

    if ("hide" in struct) {
      if (!is.boolean(struct.hide)) {
        throw new Error(
          `language-hsp3.executor.paths.${name}.hide property must be of type boolean.`
        );
      } else {
        if (struct.hide) {
          continue;
        } // 隠してるなら精査しない。
      }
    }

    if (!("path" in struct)) {
      throw new Error(
        `language-hsp3.executor.paths.${name}.path property is required.`
      );
    }
    if (!is.string(struct.path)) {
      throw new Error(
        `language-hsp3.executor.paths.${name}.path mast be of type string.`
      );
    }

    if (!("encoding" in struct)) {
      throw new Error(
        `language-hsp3.executor.paths.${name}.encoding property is required.`
      );
    }
    if (!is.string(struct.encoding)) {
      throw new Error(
        `language-hsp3.executor.paths.${name}.encoding


// 2024-09-12 flutter默认图标的rmb是一横，日语是两横
                  // 但实际上两者应该是一样的，都是两横
                  // currency_yuan、currency_yen
                  Icon(Icons.currency_yen, color: Colors.orange[300]!),
                  SizedBox(width: 5.sp),
                  Expanded(
                    child: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        Text(
                          i.item,
                          softWrap: true,
                          overflow: TextOverflow.ellipsis,
                          maxLines: 1,
                          style: TextStyle(
                            fontSize: 14.sp,
                            color: Theme.of(context).primaryColor,
                          ),
                        ),
                        RichText(
                          softWrap: true,
                          overflow: TextOverflow.ellipsis,
                          maxLines: 1,
                          text: TextSpan(
                            children: [
                              // 为了分类占的宽度一致才用的，只是显示的话可不必
                              WidgetSpan(
                                alignment: PlaceholderAlignment.baseline,
                                baseline: TextBaseline.alphabetic,
                                child: ConstrainedBox(
                                  constraints: BoxConstraints(minWidth: 50.sp),
                                  child: Text(
                                    i.category ?? "<未分类>",
                                    style: TextStyle(
                                      fontSize: 10.sp,
                                    ),
                                  ),
                                ),
                              ),
                              TextSpan(
                                text: i.date,
                                style: TextStyle(
                                  color: Colors.black,
                                  fontSize: 10.sp,
                                ),
                              ),
                            ],
                          ),
                        ),
                        // // 用上面那个一行更好看
                        // Text(
                        //   i.category ?? "<未分类>",
                        //   softWrap: true,
                        //   overflow: TextOverflow.ellipsis,
                        //   maxLines: 1,
                        //   style: TextStyle(fontSize: 10.sp),
                        // ),
                        // Text(
                        //   "${i.date}__${i.gmtModified ?? ''}",
                        //   softWrap: true,
                        //   overflow: TextOverflow.ellipsis,
                        //   maxLines: 1,
                        //   style: TextStyle(fontSize: 10.sp),
                        // )
                      ],
                    ),
                  ),
                  // 金额这里固定最大99999.99吧
                  SizedBox(
                    width: 90.sp,
                    child: Text(
                      "￥${i.value}",
                      style: TextStyle(fontSize: 15.sp),
                      softWrap: true,
                      overflow: TextOverflow.ellipsis,
                      maxLines: 1,
                      textAlign: TextAlign.end,
                    ),
                  ),
                ],
              ),
            );

            /// ListTile dense为true默认高度48(否则为56),导致这个card高度56(64)，有些高了
            // return Card(
            //   // margin: EdgeInsets.all(5.sp), // 外边距
            //   elevation: 5,
            //   color: Colors.blueGrey,
            //   child: ListTile(
            //     dense: true,
            //     title: Text(
            //       "${index + 1}


100vh - 2rem)}.Overlay.Overlay--height-medium{height:min(320px,100vh - 2rem)}.Overlay.Overlay--height-large{height:min(432px,100vh - 2rem)}.Overlay.Overlay--height-xlarge{height:min(600px,100vh - 2rem)}.Overlay.Overlay--width-auto{width:auto}.Overlay.Overlay--width-small{width:min(256px,100vw - 2rem)}.Overlay.Overlay--width-medium{width:min(320px,100vw - 2rem)}.Overlay.Overlay--width-large{width:min(480px,100vw - 2rem)}.Overlay.Overlay--width-xlarge{width:min(640px,100vw - 2rem)}.Overlay.Overlay--width-xxlarge{width:min(960px,100vw - 2rem)}@supports not selector(:popover-open){[popover]:not(.\:popover-open){display:none}}.markdown-body>*:first-child>.heading-element:first-child{margin-top:0 !important}.markdown-heading{position:relative}.markdown-heading .heading-element:hover+.anchor{opacity:1}.markdown-heading h1.heading-element+.anchor,.markdown-heading h2.heading-element+.anchor{transform:translateY(calc(-50% - 0.3rem))}.markdown-heading .anchor{position:absolute;top:50%;left:-28px;display:flex;width:28px;height:28px;margin:auto;border-radius:6px;opacity:0;justify-content:center;align-items:center;transform:translateY(-50%)}.markdown-heading .anchor:hover{opacity:1}.markdown-heading .anchor:focus{outline:2px solid var(--focus-outlineColor, var(--color-accent-fg));outline-offset:-2px;opacity:1}@media(pointer: coarse){.markdown-heading .anchor{opacity:1}}.markdown-heading .anchor .octicon{color:var(--fgColor-default, var(--color-fg-default))}.primer-button-break-line .SegmentedControl .Button{width:unset !important;min-width:100% !important;height:unset !important;min-height:100% !important}.primer-button-break-line .SegmentedControl .Button .Button-label{overflow:hidden !important;text-overflow:ellipsis !important;white-space:nowrap !important}.primer-button-break-line .Button{min-width:-moz-fit-content !important;min-width:fit-content !important;height:unset !important;min-height:var(--control-medium-size) !important}.primer-button-break-line .Button-content{flex:1 1 auto !important;align-self:stretch !important;padding-block:calc(var(--control-medium-paddingBlock) - 2px) !important}.primer-button-break-line .Button-label{white-space:unset !important}.primer-button-break-line .Button--small{height:unset !important;min-height:var(--control-small-size) !important}.primer-button-break-line .Button--small .Button-content{padding-block:calc(var(--control-small-paddingBlock) - 2px) !important}.primer-button-break-line .Button--large{height:unset !important;min-height:var(--control-large-size) !important;padding-inline:var(--control-large-paddingInline-spacious) !important}.primer-button-break-line .Button--large .Button-content{padding-bloc


医疗机构接受隔离治疗”，指出“截至目前，初步调查表明，未发现明显的人传人证据，未发现医务人员感染”。央视新闻转发报道。中国疾控中心转发公告。且通知了世界卫生组织。

武汉市“两会”新闻通气会召开。武汉市人大、武汉市政协有关负责人介绍了“两会”的筹备情况和具体议程。

同日，华大基因公司对所获得的三例类SARS冠状病毒完成了全基因序列测序。武汉大学中南医院彭志勇了解到华大基因相关信息，当时即判断这种病毒很可能人传人。见2月10日财新网 · 封面报道·四大ICU主任详解病毒 来自最前线的防治之策及2月26日财新网 · 新冠病毒基因测序溯源：警报是何时拉响的。

武汉一男子在温州自驾期间出现高热；北京、深圳、日本等地亦有出现。

【中国】


e);

    if (speechData)
    {
      speechData.x = xPos + flippedHorizontalTextOffset - scaledPosOffsetX + textStartX * hScale;
      speechData.y = this.getSpeechDataY(yPos, verticalTextOffsetBecauseNoDescenders, scaledPosOffsetY, textStartY, vScale, speechData);
    }

    let flipVertically;
    ({ flipVertically, xPos, yPos, textStartY } = this.checkForVerticalFlip(speechData, playerId, speechType, vScale, xPos, yPos, textStartY, textHeight, verticalTextOffsetBecauseNoDescenders, scaledPosOffsetY));

    let totalReadingTime: number;
    if (speechData)
    {
      speechData.width = textWidth * hScale;
      speechData.height = textHeight * vScale;
      speechData.textColor = colorStr;
      speechData.playerId = playerId;
      totalReadingTime = SpeechData.getReadingTimeMs(speechStr);
    }
    else
      totalReadingTime = ThinkingManager.thinkingMaxLifetimeMs;

    this.createNewSprite(sprites, xPos - scaledPosOffsetX, yPos - scaledPosOffsetY, speechStr, playerId, flippedHorizontally, flipVertically, speechData, speechType, hScale, vScale, totalReadingTime);
  }

  private createNewSprite(sprites: Sprites, xPos: number, yPos: number, speechStr: string, playerId: number, flippedHorizontally: any, flipVertically: any, speechData: SpeechData, speechType: SpeechType, horizontalScale: number, verticalScale: number, totalReadingTime: number) {
    //console.log(`yPos: ${yPos}, scaledPosOffsetY: ${scaledPosOffsetY}, speechData.y: ${speechData.y}`);
    //console.log(speechData);

    const sprite: SpriteProxy = sprites.add(xPos, yPos);
    sprite.playToEndOnExpire = true;
    sprite.fadeInTime = 400;
    sprite.fadeOutTime = 467;

    sprite.expirationDate = performance.now() + sprite.fadeInTime + totalReadingTime + sprite.fadeOutTime;
    sprite.flipHorizontally = flippedHorizontally;
    sprite.flipVertically = flipVertically;
    sprite.addOnFrameAdvanceCallback(this.spriteAdvanceFrame.bind(this));
    sprite.data = speechData;
    sprite.horizontalScale = horizontalScale;
    sprite.verticalScale = verticalScale;

    if (speechType == SpeechType.Listening)
    {
      // TODO: Consider adding support for flippedHorizontally and flipVertically.
      this.thinkingManager.showRandomListeningAnimation(xPos - sprites.originX, yPos - sprites.originY, playerId, sprite);
    }
  }

  private checkForVerticalFlip(speechData: SpeechData, playerId: number, speechType: SpeechType, verticalScale: number, xPos: any, yPos: number, textStartY: number, height: number, verticalTextOffsetBecauseNoDescenders: number, scaledPosOffsetY: number) {
    let flipVertically = false;

    if (speechData && speechData.y < 0) // Make sure top of text is on screen.
    {
      if (playerId === SpeechBubbleManager.dungeonMasterId) {
        flipVertically = true;
        if (speechType === SpeechType.Thinks || speechType === SpeechType.Listening) {
          const invertedSpeechBubbleOffsetX = 70;
          const invertedSpeechBubbleOffsetY = 125;
          speechData.x += invertedSpeechBubbleOffsetX;
          speechData.y += invertedSpeechBubbleOffsetY * verticalScale;
          xPos += invertedSpeechBubbleOffsetX;
          yPos += invertedSpeechBubbleOffsetY;
        }
        textStartY = -textStartY + height;
        speechData.y = this.getSpeechDataY(yPos, verticalTextOffsetBecauseNoDescenders, scaledPosOffsetY, textStartY, verticalScale, speechData);
      }
      else if (playerId < 0) {  //! in-game creatures.


ict):
        for nested_key, nested_value in value.items():
            nested_params = get_final_private_params_for_single_kv(nested_key, nested_value, params, steps_manager)
            private_params = {
                **private_params,
                # NOTE: we linearize the nested keys with {higher_key}_{lower_key} as the new key
                **{key + "_" + k: v for k, v in  nested_params.items()}
            }

        return private_params

    if key in LOG_PARAMS_PUBLIC:
        private_params[key] = value
    elif key in LOG_PARAMS_LENGTH_FIRST_ELEMENT:
        private_params[key] = len(value[0]) if value else 0
    elif key in LOG_PARAMS_FORMULAS:
        private_params[key] = anonymize_formula(value, params['sheet_index'], steps_manager)
    else:
        private_params[key] = anonymize_object(value, anonymize_key=key in LOG_PARAMS_MAP_KEYS_TO_MAKE_PRIVATE)

    return private_params


// *************************************************************
// project:  graphql-aspnet
// --
// repo: https://github.com/graphql-aspnet
// docs: https://graphql-aspnet.github.io
// --
// License:  MIT
// *************************************************************
namespace GraphQL.AspNet.Tests.Execution.TestData.UnionTypeExecutionTestData
{
    using System;
    using GraphQL.AspNet.Attributes;
    using GraphQL.AspNet.Controllers;
    using GraphQL.AspNet.Interfaces.Controllers;
    using GraphQL.AspNet.Tests.Framework.CommonHelpers;

    public class SchoolController : GraphController
    {
        [QueryRoot(typeof(PersonOrTeacher))]
        public IGraphActionResult RetrievePerson(int id)
        {
            object person = null;
            if (id == 1)
            {
                person = new Teacher()
                {
                    Id = id,
                    Name = "Teacher1",
                    NumberOfStudents = 15,
                };
            }
            else if (id == 2)
            {
                person = new Student()
                {
                    Id = id,


viewData.isPreview then
    self.lab_details_.text = Lang("EquipCreatePerfectDes", {
      val = self.viewData.perfectValue or 100
    })
    self.previewLoopGridView_:Init(self.items_)
  else
    self.loopGridView_:Init(self.items_)
  end
  self.uiBinder.Ref:SetVisible(self.emptyNode_, self.viewData.isPreview)
  self.uiBinder.Ref:SetVisible(self.haveNode_, not self.viewData.isPreview)
  self:StartCheck()
end

function Equip_forge_left_subView:OnActive()
  self.uiBinder.Trans:SetSizeDelta(0, 0)
  self:initBinders()
  self:initBtns()
  self:initUi()
  Z.EventMgr:Dispatch(Z.ConstValue.Equip.IsHideLeftView, true)
end

function Equip_forge_left_subView:GetCheck()
  return self.press_
end

function Equip_forge_left_subView:StartCheck()
  self.press_:StartCheck()
end

function Equip_forge_left_subView:StopCheck()
  self.press_:StopCheck()
end

function Equip_forge_left_subView:ClearSelected()
  self.loopGridView_:ClearAllSelect()
end

function Equip_forge_left_subView:GetIsRecast()
  return self.viewData.isRecast
end

function Equip_forge_left_subView:OnDeActive()
  self:StopCheck()
  if self.previewLoopGridView_ then
    self.previewLoopGridView_:UnInit()
    self.previewLoopGridView_ = nil
  end
  if self.loopGridView_ then
    self.loopGridView_:UnInit()
    self.loopGridView_ = nil
  end
  Z.EventMgr:Dispatch(Z.ConstValue.Equip.IsHideLeftView, false)
  if self.tipsId_ then
    Z.TipsVM.CloseItemTipsView(self.tipsId_)
  end
end

function Equip_forge_left_subView:OnRefresh()
end

return Equip_forge_left_subView


rgb = RGBA::from_hex("#FF0000FF").expect("Invalid hex string");
        assert!(f32::abs(rgb.r - 1.0) < std::f32::EPSILON);
        assert!(rgb.g < std::f32::EPSILON);
        assert!(rgb.b < std::f32::EPSILON);
        assert!((rgb.a - 1.0).abs() < std::f32::EPSILON);
    }

    #[test]
    // Tests that we make an HSV triplet at defaults and it is black.
    fn test_green_hex() {
        let rgb = RGBA::from_hex("#00FF00FF").expect("Invalid hex string");
        assert!(rgb.r < std::f32::EPSILON);
        assert!(f32::abs(rgb.g - 1.0) < std::f32::EPSILON);
        assert!(rgb.b < std::f32::EPSILON);
        assert!((rgb.a - 1.0).abs() < std::f32::EPSILON);
    }

    #[test]
    // Tests that we make an HSV triplet at defaults and it is black.
    fn test_blue_hex() {
        let rgb = RGBA::from_hex("#0000FFFF").expect("Invalid hex string");
        assert!(rgb.r < std::f32::EPSILON);
        assert!(rgb.g < std::f32::EPSILON);
        assert!(f32::abs(rgb.b - 1.0) < std::f32::EPSILON);
        assert!((rgb.a - 1.0).abs() < std::f32::EPSILON);
    }

    #[test]
    // Tests that we make an HSV triplet at defaults and it is black.
    fn test_blue_named() {
        let rgb = RGBA::named(BLUE);
        assert!(rgb.r < std::f32::EPSILON);
        assert!(rgb.g < std::f32::EPSILON);
        assert!(f32::abs(rgb.b - 1.0) < std::f32::EPSILON);
        assert!((rgb.a - 1.0).abs() < std::f32::EPSILON);
    }

    #[test]
    // Test the lerp function
    fn test_lerp() {
        let black = RGBA::named(BLACK);
        let white = RGBA::named(WHITE);
        assert!(black.lerp(white, 0.0) == black);
        assert!(black.lerp(white, 1.0) == white);
    }

    #[test]
    // Test the lerp function
    fn test_lerp_alpha() {
        let black = RGB::named(BLACK).to_rgba(0.0);
        let white = RGB::named(WHITE).to_rgba(1.0);

        let l0 = black.lerp_alpha(white, 0.0);
        let l1 = black.lerp_alpha(white, 1.0);
        assert!(l0.a < std::f32::EPSILON);
        assert!((l1.a - 1.0).abs() < std::f32::EPSILON);

        assert!(l0.to_rgb() == RGB::named(BLACK));
        assert!(l1.to_rgb() == RGB::named(BLACK));
    }
}
<reponame>gre/one-day-one-plot
use clap::Clap;
use gre::*;
use noise::*;
use rand::prelude::*;
use std::f64::consts::PI;
use svg::node::element::path::Data;
use svg::node::element::*;

fn art(opts: Opts) -> Vec<Group> {
    let spacing = 0.5;

    let colors = vec!["red", "black"];
    let dim = (297., 210.);
    let pad = 10.0;
    let boundaries = (pad, pad, dim.0 - pad, dim.1 - pad);
    let perlin = Perlin::new();
    let mut rng =
        SmallRng::from_seed([opts.seed as u8; 16]);
    for _i in 0..50 {
        rng.gen::<f64>();
    }

    let initial_angle_off = rng.gen_range(2.0, 5.0);


id": 107,
    "type": "单选",
    "a": "B",
    "q": "1999年9月,江泽民在表彰为研制“两弹一星”作出突出贡献的科技专家大会的讲话中,将“两弹一星”精神概括为热爱祖国!(),自力更生!艰苦奋斗,大力协同!勇于登攀。",
    "isStore": "false",
    "isAnswer": 0,
    "options": [{
      "label": "A",
      "text": "爱岗敬业"
    }, {
      "label": "B",
      "text": "无私奉献"
    }, {
      "label": "C",
      "text": "大公无私"
    }]
  }, {
    "id": 108,
    "type": "单选",
    "a": "B",
    "q": "党的十七大将科学发展观写入党章。科学发展观的核心是()。",
    "isStore": "false",
    "isAnswer": 0,
    "options": [{
      "label": "A",
      "text": "全面发展"
    }, {
      "label": "B",
      "text": "以人为本"
    }, {
      "label": "C",
      "text": "统筹兼顾"
    }]
  }, {
    "id": 109,
    "type": "单选",
    "a": "D",
    "q": "“三个代表”重要思想的实质和核心是()。",
    "isStore": "false",
    "isAnswer": 0,
    "options": [{
      "label": "A",
      "text": "始终保持中国共产党的先进性"
    }, {
      "label": "B",
      "text": "解决国内矛盾"
    }, {
      "label": "C",
      "text": "解决国际争端D!建设什么样的党，怎样建设党"
    }]
  }, {
    "id": 110,
    "type": "单选",
    "a": "C",
    "q": "邓小平在1992年南方谈话中提出的“三个有利于”,下列哪个不属于三个有利于()？",
    "isStore": "false",
    "isAnswer": 0,
    "options": [{
      "label": "A",
      "text": "有利于发展社会主义社会的生产力"
    }, {
      "label": "B",
      "text": "有利于增强社会主义国家的综合国力"
    }, {
      "label": "C",
      "text": "有利于提高驾驭社会主义市场经济的能力"
    }, {
      "label": "D",
      "text": "有利于提高人民的生活水平"
    }]
  }, {
    "id": 111,
    "type": "单选",
    "a": "B",
    "q": "党的中共十一届三中全会把全党的工作重点转移到()上来，提出了（）的重要思想。",
    "isStore": "false",
    "isAnswer": 0,
    "options": [{
      "label": "A",
      "text": "社会主义现代化建设，改革开放"
    }, {
      "label": "B",
      "text": "经济建设，改革开放"
    }, {
      "label":


&['q'],
	&['r'],
	&['s'],
	&['t'],
	&['u'],
	&['v'],
	&['w'],
	&['x'],
	&['y'],
	&['z'],
	&['ß'],
	&['š'],
	&['ś'],
	&['ť'],
	&['ž'],
	&['ź'],
	&['ł'],
	&['ą'],
	&['ş'],
	&['ľ'],
	&['ż'],
	&['ŕ'],
	&['á'],
	&['â'],
	&['ă'],
	&['ä'],
	&['ĺ'],
	&['ć'],
	&['ç'],
	&['č'],
	&['é'],
	&['ę'],
	&['ë'],
	&['ě'],
	&['í'],
	&['î'],
	&['ď'],
	&['đ'],
	&['ń'],
	&['ň'],
	&['ó'],
	&['ô'],
	&['ő'],
	&['ö'],
	&['ř'],
	&['ů'],
	&['ú'],
	&['ű'],
	&['ü'],
	&['ý'],
	&['ţ'],
	// Start non-stored classes
    &['·', '«', '»', '\u{00AD}', '¦'], // plausible next to alphabetic on either side
    &['¨', '¯', '´', '¸', '˛', 'ˇ', '˘', '˙', '¤', '§', '¬', '±', '¢', 'ƒ'], // implausible next to alphabetic on either side
    &['®', '¶'], // implausible before alphabetic
    &['©', '°', 'µ'], // implausible after alphabetic
    &['¬', '±', '×', '÷', '≈', '≤', '≥'], // implausible next to non-ASCII alphabetic
    &[], // implausible next to ASCII alphabetic
];

pub const CYRILLIC: [&[char]; 52] = [
	&[' '], // Space-like
    &['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'],
	&['ѓ', 'ґ', 'ќ', 'ѕ'],
	&['ђ'],
	&['љ'],
	&['њ'],
	&['ћ'],
	&['џ'],
	&['ў'],
	&['і'],
	&['ё'],
	&['є'],
	&['ј'],
	&['ї'],
	&['а'],
	&['б'],
	&['в'],
	&['г'],
	&['д'],
	&['е'],
	&['ж'],
	&['з'],
	&['и'],
	&['й'],
	&['к'],
	&['л'],
	&['м'],
	&['н'],
	&['о'],
	&['п'],
	&['р'],
	&['с'],
	&['т'],
	&['у'],
	&['ф'],
	&['х'],
	&['ц'],
	&['ч'],
	&['ш'],
	&['щ'],
	&['ъ'],
	&['ы'],
	&['ь'],
	&['э'],
	&['ю'],
	&['я'],
	// Start non-stored classes
    &['·', '\u{00AD}', '¦', '∙'], // plausible next to alphabetic on either side
    &['¨', '¯', '´', '¸', '˛', 'ˇ', '˘', '¤', '§', '¢', 'ƒ', '№', '⌡', '⌠', '─', '│', '┌', '┐', '└', '┘', '├', '┤', '┬', '┴', '┼', '═', '║', '╒', '╓', '╔', '╕', '╖', '╗', '╘', '╙', '╚', '╛', '╜', '╝', '╞', '╟', '╠', '╡', '╢', '╣', '╤', '╥', '╦', '╧', '╨', '╩', '╪', '╫', '╬', '▀', '▄', '█', '▌', '▐', '░', '▒', '▓', '■'], // implausible next to alphabetic on either side
    &['®', '¶', '²', '»'], // implausible before alphabetic
    &


File.getInputStream(entry), Policy.subMonitorFor(monitor, 1));
						}

					} else if(name != null && name.indexOf("context-common.xml")>-1){

						if(!entry.isDirectory()){

							// 파일을 생성하기 위한 파일명 및 경로를 구성한다.
							file = project.getFile(entry.getName());

							// 같은 경로에 context-common.xml파일이 있을 경우에는 컴포넌트를 재설치 하는것으로 간주하고 덮어씌운다.
//							if(file.isAccessible()){
//								ResourceUtils.createFolderFile(project, entry.getName(), zipFile.getInputStream(entry), Policy.subMonitorFor(monitor, 1));
//
//							} else {
								// 경로가 틀릴경우 xml 내부의 messageSource 노드를 확인, 수정하는 작업을 수행한다.
								// 파일을 수정한다.
								boolean newComp = ComResourceUtils.modifyMessageSource(project, entry.getName(), zipFile.getInputStream(entry), Policy.subMonitorFor(monitor, 1));

								// xml 내부의 leavertrace 노드를 확인하여 수정하는 작업을 수행한다.
								boolean newLeavea = ComResourceUtils.modifyLeaverTraceSource(project, entry.getName(), zipFile.getInputStream(entry), Policy.subMonitorFor(monitor, 1), newComp);

								// 공통컴포넌트(zip)에 파일이 존재하고, AS-IS 시스템에 파일이 존재 하지 않을경우 파일 복사를 수행한다.
					    		if(!newComp && !newLeavea) {
					    			ResourceUtils.createFolderFile(project, entry.getName(), zipFile.getInputStream(entry), Policy.subMonitorFor(monitor, 1));
					    		}

//							}
						}

					} else if(name != null && name.indexOf("context-validator.xml")>-1){

						if(!entry.isDirectory()){
							// 파일을 생성하기 위한 파일명 및 경로를 구성한다.
							file = project.getFile(entry.getName());

							// 같은 경로에 egov-com-servlet.xml파일이 있을 경우에는 컴포넌트를 재설치 하는것으로 간주하고 덮어씌운다.
//							if(file.isAccessible()){
//								ResourceUtils.createFolderFile(project, entry.getName(), zipFile.getInputStream(entry), Policy.subMonitorFor(monitor, 1));
//
//							} else {

								// 파일을 생성한다.
								boolean fileExist = ComResourceUtils.copyValidator(project, entry.getName(), zipFile.getInputStream(entry), Policy.subMonitorFor(monitor, 1), comVo);

								if(!fileExist) {
									ResourceUtils.createFolderFile(project, entry.getName(), zipFile.getInputStream(entry), Policy.subMonitorFor(monitor, 1));
								}

//							}

						}
					} else if(name != null && name.indexOf("egov-mcom-servlet.xml")>-1){

						if(!entry.isDirectory()){
							// 파일을 생성하기 위한 파일명 및 경로를 구성한다.
							file = project.


e, base_url=None, *args, **kwargs):
        if location is None:
            location = os.path.join(
                settings.COMPRESS_ROOT, settings.COMPRESS_OUTPUT_DIR
            )
        if base_url is None:
            base_url = urljoin(settings.COMPRESS_URL, settings.COMPRESS_OUTPUT_DIR)
        super().__init__(location, base_url, *args, **kwargs)

class DefaultOfflineManifestStorage(LazyObject):
    def _setup(self):
        self._wrapped = get_storage(
            alias=settings.COMPRESS_OFFLINE_MANIFEST_STORAGE_ALIAS,
            storage_class=settings.COMPRESS_OFFLINE_MANIFEST_STORAGE,
        )

default_offline_manifest_storage = DefaultOfflineManifestStorage()


%esp)		// x : log10(2)
#ifdef PIC
	LOAD_PIC_REG (dx)
#endif
	fxam
	fnstsw
	fld	%st		// x : x : log10(2)
	sahf
	jc	3f		// in case x is NaN or Inf
4:	fsubl	MO(one)		// x-1 : x : log10(2)
	fld	%st		// x-1 : x-1 : x : log10(2)
	fabs			// |x-1| : x-1 : x : log10(2)
	fcompl	MO(limit)	// x-1 : x : log10(2)
	fnstsw			// x-1 : x : log10(2)
	andb	$0x45, %ah
	jz	2f
	fxam
	fnstsw
	andb	$0x45, %ah
	cmpb	$0x40, %ah
	jne	5f
	fabs			// log10(1) is +0 in all rounding modes.
5:	fstp	%st(1)		// x-1 : log10(2)
	fyl2xp1			// log10(x)
	ret

2:	fstp	%st(0)		// x : log10(2)
	fyl2x			// log10(x)
	ret

3:	jp	4b		// in case x is Inf
	fstp	%st(1)
	fstp	%st(1)
	ret
END (__ieee754_log10f)
strong_alias (__ieee754_log10f, __log10f_finite)


y {
      final response = await http.get(Uri.parse(url));

      if (response.statusCode == 200) {
        final data = json.decode(response.body);
        Set<Marker> markers = {};

        for (var result in data['results']) {
          LatLng position = LatLng(result['geometry']['location']['lat'],
              result['geometry']['location']['lng']);
          markers.add(Marker(
            markerId: MarkerId(result['place_id']),
            position: position,
            infoWindow: InfoWindow(
              title: result['name'], // 마커 위에 표시할 장소명
            ),
            onTap: () {
              // 마커 클릭 시 바텀 시트 표시
              setState(() {
                _placeName = result['name'];
              });
              _showPlaceNameBottomSheet(context);
            },
          ));
        }

        setState(() {
          _markers = markers; // 필터링된 마커로 업데이트
        });
      } else {
        print('Failed to fetch place data');
      }
    } catch (e) {
      print('Error occurred: $e');
    }
  }

  // 바텀 시트를 표시하는 메서드 (Firestore 데이터를 사용)
  void _showPlaceNameBottomSheet(BuildContext context) {
    showModalBottomSheet(
      context: context,
      isScrollControlled: true,
      builder: (BuildContext context) {
        return FractionallySizedBox(
          heightFactor: 0.5,
          child: Container(
            padding: const EdgeInsets.all(16.0),
            decoration: const BoxDecoration(
              color: Colors.white,
              borderRadius: BorderRadius.vertical(top: Radius.circular(16.0)),
            ),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Text(
                  _placeName,
                  style: const TextStyle(
                      fontSize: 18, fontWeight: FontWeight.bold),
                ),
                const SizedBox(height: 16),
                const Text(
                  '혜택이 큰 카드 순이에요.\n맨위의 카드로 결제하시면 개이득!',
                  style: TextStyle(fontSize: 16),
                ),
                const SizedBox(height: 10),
                Expanded(
                  child: StreamBuilder<QuerySnapshot>(
                    stream: FirebaseFirestore.instance
                        .collection('cardInfo')
                        .snapshots(),
                    builder: (context, snapshot) {
                      if (snapshot.connectionState == ConnectionState.waiting) {
                        return const Center(child: CircularProgressIndicator());
                      } else if (snapshot.hasError) {
                        return const Center(child: Text('Error loading data'));
                      } else if (!snapshot.hasData ||
                          snapshot.data!.docs.isEmpty) {
                        return const Center(child: Text('No data available'));
                      }

                      final cardInfos = snapshot.data!.docs
                          .map((doc)


;
			if (msl_options.is_ios())
			{
				statement("uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, gl_SubgroupInvocationID + 1), uint3(0));");
			}
			else
			{
				statement("uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID + 1, 32u)), "
				          "extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID + 1 - 32, 0)), "
				          "uint2(0));");
			}
			statement("return spvPopCount4(ballot & mask);");
			end_scope();
			statement("");
			statement("inline uint spvSubgroupBallotExclusiveBitCount(uint4 ballot, uint gl_SubgroupInvocationID)");
			begin_scope();
			if (msl_options.is_ios())
			{
				statement("uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, gl_SubgroupInvocationID), uint2(0));");
			}
			else
			{
				statement("uint4 mask = uint4(extract_bits(0xFFFFFFFF, 0, min(gl_SubgroupInvocationID, 32u)), "
				          "extract_bits(0xFFFFFFFF, 0, (uint)max((int)gl_SubgroupInvocationID - 32, 0)), uint2(0));");
			}
			statement("return spvPopCount4(ballot & mask);");
			end_scope();
			statement("");
			break;

		case SPVFuncImplSubgroupAllEqual:
			// Metal doesn't provide a function to evaluate this directly. But, we can
			// implement this by comparing every thread's value to one thread's value
			// (in this case, the value of the first active thread). Then, by the transitive
			// property of equality, if all comparisons return true, then they are all equal.
			statement("template<typename T>");
			statement("inline bool spvSubgroupAllEqual(T value)");
			begin_scope();
			if (msl_options.use_quadgroup_operation())
				statement("return quad_all(all(value == quad_broadcast_first(value)));");
			else
				statement("return simd_all(all(value == simd_broadcast_first(value)));");
			end_scope();
			statement("");
			statement("template<>");
			statement("inline bool spvSubgroupAllEqual(bool value)");
			begin_scope();
			if (msl_options.use_quadgroup_operation())
				statement("return quad_all(value) || !quad_any(value);");
			else
				statement("return simd_all(value) || !simd_any(value);");
			end_scope();
			statement("");
			statement("template<uint N>");
			statement("inline bool spvSubgroupAllEqual(vec<bool, N> value)");
			begin_scope();
			if (msl_options.use_quadgroup_operation())
				statement("return quad_all(all(value == (vec<bool, N>)quad_broadcast_first((vec<ushort, N>)value)));");
			else
				statement("return simd_all(all(value == (vec<bool, N>)simd_broadcast_first((vec<ushort, N>)value)));");
			end_scope();
			statement("");
			break;

		case SPVFuncImplSubgroupShuffle:
			statement("template<typename T>");
			statement("inline T spvSubgroupShuffle(T value, ushort lane)");
			begin_scope();
			if (msl_options.use_quadgroup_operation())
				statement("return quad_shuffle(value, lane);");
			else
				statement("return simd_shuffle(value, lane);");
			end_scope();
			statement("");
			statement("template<>");
			statement


SMODS.Joker {
    key = 'poindexter',
    atlas = 'Jokers',
    rarity = 2,
    pos = {
        x = 1,
        y = 0
    },
    config = {
        extra = {
            Xmult = 1.0,
            gain = 0.25
        }
    },
    mxms_credits = {
        art = { "Maxiss02" },
        code = { "theAstra" },
        idea = { "Maxiss02" }
    },
    blueprint_compat = true,
    cost = 7,
    enhancement_gate = 'm_glass',
    loc_vars = function(self, info_queue, card)
        local stg = card.ability.extra
        info_queue[#info_queue + 1] = G.P_CENTERS.m_glass
        return {
            vars = { stg.Xmult, stg.gain }
        }
    end,
    calculate = function(self, card, context)
        local stg = card.ability.extra
        if context.joker_main and stg.Xmult > 1 then
            return {
                x_mult = stg.Xmult
            }
        end

        if context.after and not context.blueprint then
            -- Check for shattered glass
            for k, v in pairs(conte


ding-right:62px}.euiComboBox .euiComboBox__inputWrap.euiComboBox__inputWrap-isLoading .euiComboBoxPlaceholder{padding-right:62px}.euiComboBox .euiComboBox__inputWrap.euiComboBox__inputWrap-isLoading.euiComboBox__inputWrap-isClearable{padding-right:84px}.euiComboBox .euiComboBox__input{display:inline-flex !important;height:32px;overflow:hidden}.euiComboBox .euiComboBox__input>input{font-family:"Inter UI",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-weight:400;letter-spacing:-.005em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;font-kerning:normal;appearance:none;padding:0;border:none;background:transparent;font-size:14px;color:#DFE5EF;margin:4px;line-height:1.5}.euiComboBox.euiComboBox-isOpen .euiComboBox__inputWrap{background-color:#111216;background-image:linear-gradient(to top, #1BA9F5, #1BA9F5 2px, transparent 2px, transparent 100%);background-size:100% 100%;box-shadow:0 1px 1px -1px rgba(0,0,0,0.2),0 4px 4px -2px rgba(0,0,0,0.2),inset 0 0 0 1px rgba(255,255,255,0.1)}.euiComboBox.euiComboBox-isOpen .euiComboBox__inputWrap--compressed{background-color:#111216;background-image:linear-gradient(to top, #1BA9F5, #1BA9F5 2px, transparent 2px, transparent 100%);background-size:100% 100%;box-shadow:inset 0 0 0 1px rgba(255,255,255,0.1)}.euiComboBox.euiComboBox-isInvalid .euiComboBox__inputWrap{background-image:linear-gradient(to top, #F66, #F66 2px, transparent 2px, transparent 100%);background-size:100%}.euiComboBox.euiComboBox-isDisabled .euiComboBox__inputWrap{cursor:not-allowed;color:#535966;background:#202128;box-shadow:inset 0 0 0 1px rgba(255,255,255,0.1)}.euiComboBox.euiComboBox-isDisabled .euiComboBox__inputWrap::-webkit-input-placeholder{color:#535966}.euiComboBox.euiComboBox-isDisabled .euiComboBox__inputWrap::-moz-placeholder{color:#535966}.euiComboBox.euiComboBox-isDisabled .euiComboBox__inputWrap:-ms-input-placeholder{color:#535966}.euiComboBox.euiComboBox-isDisabled .euiComboBox__inputWrap:-moz-placeholder{color:#535966}.euiComboBox.euiComboBox-isDisabled .euiComboBox__inputWrap::placeholder{color:#535966}.euiComboBox.euiComboBox--compressed .euiComboBox__inputWrap{line-height:32px;padding-top:0;padding-bottom:0;padding-right:32px}.euiComboBox.euiComboBox--compressed .euiComboBox__inputWrap.euiComboBox__inputWrap-isClearable{padding-right:54px}.euiComboBox.euiComboBox--compressed .euiComboBox__inputWrap.euiComboBox__inputWrap-isLoading{padding-right:54px}.euiComboBox.euiComboBox--compressed .euiComboBox__inputWrap.euiComboBox__inputWrap-isLoading .euiComboBoxPlaceholder{padding-right:54px}.euiComboBox.euiComboBox--compressed .euiComboBox__inputWrap.euiComboBox__inputWrap-isLoading.euiComboBox__inputWrap-isClearable{padding-right:76px}.euiComboBox


import functools
from time import time
from abc import ABC, abstractmethod
from typing import List

from selenium.webdriver.remote.webdriver import WebDriver
from selenium.webdriver.common.by import By
from selenium.webdriver.remote.webelement import WebElement

class BasePage:

    _base_url = 'https://magento.softwaretestingboard.com'
    _header_title_loc = (By.TAG_NAME, 'h1')

    def __init__(self, driver: WebDriver):
        self._driver = driver

    @abstractmethod
    def open_page(self):
        pass

    @property
    def current_url(self) -> str:
        return self._driver.current_url

    @property
    def page_title(self) -> str:
        return self._driver.title

    @property
    def header_text(self) -> str:
        return self.find(self._header_title_loc).text

    def find(self, locator: tuple) -> WebElement:
        return self._driver.find_element(*locator)

    def find_all(self, locator: tuple) -> List[WebElement]:
        return self._driver.find_elements(*locator)

    def check_page_header_title_is(self, expected_text: str):
        actual_text = self.find(self._header_title_loc).text
        assert actual_text == expected_text, f"Expected header: '{expected_text}', but got: '{actual_text}'"

    # turns a method into a static method, not requiring self as its first parameter and doesn’t need access to the instance or class at all
    # used it here to not require self as the decorator could be used for both methods or functions
    @staticmethod
    def log_time(func):
        @functools.wraps(func) # keeps functions original metadata like .__name__ and returns a function name instead of wrapper name
        def wrapper(*args, **kwargs):
            start = time()
            result = func(*args, **kwargs)
            duration = time() - start
            print(f"{func.__name__} executed in {duration:.2f}s")
            return result
        return wrapper


ntent)
                    } catch (e: ActivityNotFoundException) {
                        CopyUtil.copyTextToClipboard(this@MainActivity, url.split(":")[1])
                    }
                    true
                } else {
                    true
                }
            }
        }

        Thread {
            try {
                val url =
                    URL("https://gitee.com/LiuXing0327/app-privacy/raw/master/daily/terms_and_privacy.html")
                val htmlContent = url.readText()

                runOnUiThread {
                    webView.loadDataWithBaseURL(
                        "https://gitee.com/", htmlContent, "text/html", "UTF-8", null
                    )
                }
            } catch (e: Exception) {
                e.printStackTrace()
            }
        }.start()
        MaterialAlertDialogBuilder(this, R.style.ThemeOverlay_App_MaterialAlertDialog).apply {
            setView(webLayout)
            setPositiveButton("已阅读并同意") { _, _ ->
                sharedPreferences?.edit {
                    putBoolean(termsAndPrivacyAgreedKey, true)
                    apply()
                }
            }
            setNeutralButton("不同意并退出") { _, _ ->
                finish()
            }
            setCancelable(false)
            create()
            show()
        }
    }

    /**
     * 创建标签项
     */
    private fun createLabelItem() {
        createLabel = gLabel.add(
            Menu.NONE, R.id.create_label_id, Menu.NONE,
            getString(R.string.create_label)
        )
            ?.setIcon(R.drawable.baseline_add_24)!!
        createLabel.setOnMenuItemClickListener {
            activityMainBinding.main.close()
            showLabelInputDialog()
            true
        }
    }

    /**
     * 显示输入标签的对话框
     */
    private fun showLabelInputDialog() {
        val view = layoutInflater.inflate(R.layout.dialog_input_label_layout, null)
        val inputLabel = view.findViewById<TextInputEditText>(R.id.input_label)
        val inputLabelLayout = view.findViewById<TextInputLayout>(R.id.input_label_layout)
        MaterialAlertDialogBuilder(this).apply {
            setTitle(getString(R.string.create_label))
            setView(view)
            setPositiveButton(getString(R.string.sure)) { dialog, which ->
                val label = inputLabel.text.toString()
                if (label.isNotEmpty()) {
                    addDailyLabel(label)
                }
            }
            setNegativeButton(getString(R.string.cancel), null)
            val dialog = create()
            dialog.show()
            val positiveButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE)
            positiveButton.isEnabled = false
            inputLabel.addTextChangedListener {
                val inputText = it.toString()
                val input = dailyLabelList.any { dailyLabelEntity ->
                    dailyLabelEntity.label == inputText
                }
                inputLabelLayout.error = when {
                    inputText.isEmpty() -> getString(R.string.the_label_is_empty)
                    input -> getString(R.string.the_label_already_exists)
                    else -> null
                }
                positiveButton.isEnabled = inputText.isNotEmpty() && !input
            }
        }
    }

    /**
     * 获取日记标签
     */
    private fun getDailyLabel() {
        dailyViewModel.queryAllDailyLabel().observe(this) { dailyLabelList ->
            this.dailyLabelList = dailyLabelList
            val sortedBy = dailyLabelList.sortedBy { it.label?.lowercase() }
            gLabel.clear()
            sortedBy.forEach { dailyLabelEntity ->
                gLabel.add(dailyLabelEntity.label).setIcon(R.drawable.outline_label_24)
                    .setOnMenuItemClickListener { _ ->
                        val intent = Intent(this, DailyLabelActivity::class.java).apply {
                            putExtra("daily_label_id", dailyLabelEntity.id)
                            putExtra("daily_label_label", dailyLabelEntity.label)

                        }


# LLVM-MCA-BEGIN G52
ldrsh  x1, [x27, #254]!
ldrsw  x1, [x27], #254
ldrsw  x1, [x27, #254]!
st1  { v1.1d }, [x27], #8
st1  { v1.2d }, [x27], #16
# LLVM-MCA-END

# LLVM-MCA-BEGIN G53
st1  { v1.2s }, [x27], #8
st1  { v1.4h }, [x27], #8
st1  { v1.4s }, [x27], #16
st1  { v1.8b }, [x27], #8
st1  { v1.8h }, [x27], #16
# LLVM-MCA-END

# LLVM-MCA-BEGIN G54
st1  { v1.16b }, [x27], #16
st1  { v1.1d }, [x27], x28
st1  { v1.2d }, [x27], x28
st1  { v1.2s }, [x27], x28
st1  { v1.4h }, [x27], x28
# LLVM-MCA-END

# LLVM-MCA-BEGIN G55
st1  { v1.4s }, [x27], x28
st1  { v1.8b }, [x27], x28
st1  { v1.8h }, [x27], x28
st1  { v1.16b }, [x27], x28
st1  { v1.1d, v2.1d }, [x27], #16
# LLVM-MCA-END

# LLVM-MCA-BEGIN G56
st1  { v1.2d, v2.2d }, [x27], #32
st1  { v1.2s, v2.2s }, [x27], #16
st1  { v1.4h, v2.4h }, [x27], #16
st1  { v1.4s, v2.4s }, [x27], #32
st1  { v1.8b, v2.8b }, [x27], #16
# LLVM-MCA-END

# LLVM-MCA-BEGIN G57
st1  { v1.8h, v2.8h }, [x27], #32
st1  { v1.16b, v2.16b }, [x27], #32
st1  { v1.1d, v2.1d }, [x27], x28
st1  { v1.2d, v2.2d }, [x27], x28
st1  { v1.2s, v2.2s }, [x27], x28
# LLVM-MCA-END

# LLVM-MCA-BEGIN G58
st1  { v1.4h, v2.4h }, [x27], x28
st1  { v1.4s, v2.4s }, [x27], x28
st1  { v1.8b, v2.8b }, [x27], x28
st1  { v1.8h, v2.8h }, [x27], x28
st1  { v1.16b, v2.16b }, [x27], x28
# LLVM-MCA-END

# LLVM-MCA-BEGIN G59
st1  { v1.1d, v2.1d, v3.1d }, [x27], #24
st1  { v1.2d, v2.2d, v3.2d }, [x27], #48
st1  { v1.2s, v2.2s, v3.2s }, [x27], #24
st1  { v1.4h, v2.4h, v3.4h }, [x27], #24
st1


te = DEFAULT_QUALITY  # use the default action here

                action_vec = np.zeros(A_DIM)
                action_vec[bit_rate] = 1

                s_batch.append(np.zeros((S_INFO, S_LEN)))
                a_batch.append(action_vec)

            else:
                s_batch.append(state)

                action_vec = np.zeros(A_DIM)
                action_vec[bit_rate] = 1
                a_batch.append(action_vec)

def main():

    np.random.seed(RANDOM_SEED)
    assert len(VIDEO_BIT_RATE) == A_DIM

    # create result directory
    if not os.path.exists(SUMMARY_DIR):
        os.makedirs(SUMMARY_DIR)

    # inter-process communication queues
    net_params_queues = []
    exp_queues = []
    for i in xrange(NUM_AGENTS):
        net_params_queues.append(mp.Queue(1))
        exp_queues.append(mp.Queue(1))

    # create a coordinator and multiple agent processes
    # (note: threading is not desirable due to python GIL)
    coordinator = mp.Process(target=central_agent,
                             args=(net_params_queues, exp_queues))
    coordinator.start()

    all_cooked_time, all_cooked_bw, _ = load_trace.load_trace(TRAIN_TRACES)
    agents = []
    for i in xrange(NUM_AGENTS):
        agents.append(mp.Process(target=agent,
                                 args=(i, all_cooked_time, all_cooked_bw,
                                       net_params_queues[i],
                                       exp_queues[i])))
    for i in xrange(NUM_AGENTS):
        agents[i].start()

    # wait unit training is done
    coordinator.join()

if __name__ == '__main__':
    main()


    codes: Config.bannerCodes,
                //宽
                width: 300,
                //高
                height: 80,
                timeout: 5,
                model: GTAdsModel.PRIORITY,
                //回调
                callBack: GTAdsCallBack(
                  onShow: (code) {
                    print("Banner显示 ${code.toJson()}");
                  },
                  onClick: (code) {
                    print("Banner点击 ${code.toJson()}");
                  },
                  onFail: (code, message) {
                    print("Banner错误 ${code?.toJson()} $message");
                  },
                  onClose: (code) {
                    print("Banner关闭 ${code.toJson()}");
                  },
                  onTimeout: () {
                    print("Banner加载超时");
                  },
                  onEnd: () {
                    print("Banner所有广告位都加载失败");
                  },
                )),
            GTAdsBannerWidget(
                codes: Config.bannerCodes,
                //宽
                width: 300,
                //高
                height: 80,
                timeout: 5,
                model: GTAdsModel.PRIORITY,
                //回调
                callBack: GTAdsCallBack(
                  onShow: (code) {
                    print("Banner显示 ${code.toJson()}");
                  },
                  onClick: (code) {
                    print("Banner点击 ${code.toJson()}");
                  },
                  onFail: (code, message) {
                    print("Banner错误 ${code?.toJson()} $message");
                  },
                  onClose: (code) {
                    print("Banner关闭 ${code.toJson()}");
                  },
                  onTimeout: () {
                    print("Banner加载超时");
                  },
                  onEnd: () {
                    print("Banner所有广告位都加载失败");
                  },
                )),
          ],
        ),
      ),
    );
  }
}
import 'package:file_preview/file_preview.dart';
import 'package:flutter/material.dart';

/// @Author: gstory
/// @CreateDate: 2021/12/27 10:27 上午
/// @Email gstory0404@gmail.com
/// @Description: dart类作用描述

class FilePreviewPage extends StatefulWidget {
  final String title;
  final String path;

  const FilePreviewPage({Key? key, required this.path, required this.title})
      : super(key: key);

  @override
  _FilePreviewPageState createState() => _FilePreviewPageState();
}

class _FilePreviewPageState extends State<FilePreviewPage> {
  FilePreviewController controller = FilePreviewController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Column(
        children: [
          Container(
            alignment: Alignment.topLeft,
            child: FilePreviewWidget(
             controller: controller,
              width: 400,
              height: 600,
              path: widget.path,
              callBack: FilePreviewCallBack(onShow: () {
                print("文件打开成功");
              }, onDownload: (progress) {
                print("文件下载进度$progress");
              }, onFail: (code, msg) {
                print("文件打开失败 $code  $msg");
              }),
            ),
          ),
          Row(
            children: [
              TextButton(
                onPressed: () {
                  controller.showFile("https://gstory.vercel.app/ceshi/ceshi.docx?a=1&b=123");
                },
                child: Text("docx"),
              ),
              TextButton(
                onPressed: () {
                  controller.showFile("https


ed), EARLIEST_POSITION_MAY_BE_MISSING_EN_PASSANT, false);
    }

    readonly MGMove ToMGMove(EncodedMove move)
    {
      MGPosition lastPosMG = FinalPosition.ToMGPosition;
      MGMove playedMoveMG = ConverterMGMoveEncodedMove.EncodedMoveToMGChessMove(move, in lastPosMG);
      return playedMoveMG;
    }

    /// <summary>
    /// Returns the best move according to the training search.
    /// </summary>
    public readonly MGMove BestMove => ToMGMove(MiscInfo.InfoTraining.BestMove);

    /// <summary>
    /// Returns the played move in the training game.
    /// </summary>
    public readonly MGMove PlayedMove => ToMGMove(MiscInfo.InfoTraining.PlayedMove);

    #endregion

    /// <summary>
    /// Returns the piece character for a FEN corresponding to specified square.
    /// </summary>
    /// <param name="planes"></param>
    /// <param name="index"></param>
    /// <param name="weAreWhite"></param>
    /// <param name="emptySquareChar"></param>
    /// <returns></returns>
    internal static string FENCharAt(EncodedPositionBoard planes, int index, bool weAreWhite, string emptySquareChar)
    {
      if (planes.OurPawns.BitIsSet(index)) return weAreWhite ? "P" : "p";
      if (planes.OurKnights.BitIsSet(index)) return weAreWhite ? "N" : "n";
      if (planes.OurBishops.BitIsSet(index)) return weAreWhite ? "B" : "b";
      if (planes.OurRooks.BitIsSet(index)) return weAreWhite ? "R" : "r";
      if (planes.OurQueens.BitIsSet(index)) return weAreWhite ? "Q" : "q";
      if (planes.OurKing.BitIsSet(index)) return weAreWhite ? "K" : "k";

      if (planes.TheirPawns.BitIsSet(index)) return weAreWhite ? "p" : "P";
      if (planes.TheirKnights.BitIsSet(index)) return weAreWhite ? "n" : "N";
      if (planes.TheirBishops.BitIsSet(index)) return weAreWhite ? "b" : "B";
      if (planes.TheirRooks.BitIsSet(index)) return weAreWhite ? "r" : "R";
      if (planes.TheirQueens.BitIsSet(index)) return weAreWhite ? "q" : "Q";
      if (planes.TheirKing.BitIsSet(index)) return weAreWhite ? "k" : "K";

      return emptySquareChar;
    }

    /// <summary>
    /// Gets the part of a FEN string corrrespondong to a specifid row on a specified plane in this position.
    /// </summary>
    /// <param name="startIndex"></param>
    /// <param name="planes"></param>
    /// <param name="weAreWhite"></param>
    /// <returns></returns>
    internal static string GetRowString(int startIndex, in EncodedPositionBoard planes, bool weAreWhite)
    {
      string ret = "";
      for (int i = 7; i >= 0; i--)
      {
        string thisChar = FENCharAt(planes, startIndex + i, weAreWhite, ".");
        ret += thisChar;
      }
      return ret;
    }

    /// <summary>
    /// Returns string with text representations of a specified history board.
    /// </summary>
    /// <param name="historyIndex"></param>
    /// <returns></returns>
    public string BoardPictureForHistoryBoard(int historyIndex)
    {
      EncodedPositionBoard planes = GetPlanesForHistoryBoard(historyIndex);
      return planes.GetBoardPicture(true);
    }

    /// <summary>
    /// Returns string with text representations of all history boards from left to right.
    /// </summary>
    /// <returns></returns>
    public string BoardPictures()
    {
      string[] rows = new string[] { "", "", "", "", "", "", "", "", "", "" };

      for (int i = 0; i < Encoded


Provider? provider)
        => TryParse(s, provider, out var svo)
            ? svo
            : throw Unparsable.ForValue<HouseNumber>(s, QowaivMessages.FormatExceptionHouseNumber);

    /// Converts the <see cref="string" /> to <see cref="HouseNumber" />.
    /// <param name="s">
    /// A string containing the house number to convert.
    /// </param>
    /// <returns>
    /// The house number if the string was converted successfully, otherwise default.
    /// </returns>
    [Pure]
    public static HouseNumber? TryParse(string? s)
        => TryParse(s, null, out var val)
            ? val
            : default(HouseNumber?);

    /// Converts the <see cref="string" /> to <see cref="HouseNumber" />.
    /// <param name="s">
    /// A string containing the house number to convert.
    /// </param>
    /// <param name="provider">
    /// The specified format provider.
    /// </param>
    /// <returns>
    /// The house number if the string was converted successfully, otherwise default.
    /// </returns>
    [Pure]
    public static HouseNumber? TryParse(string? s, IFormatProvider? provider)
        => TryParse(s, provider, out var val)
            ? val
            : default(HouseNumber?);

    /// Converts the <see cref="string" /> to <see cref="HouseNumber" />.
    /// A return value indicates whether the conversion succeeded.
    ///
    /// <param name="s">
    /// A string containing the house number to convert.
    /// </param>
    /// <param name="result">
    /// The result of the parsing.
    /// </param>
    /// <returns>
    /// True if the string was converted successfully, otherwise false.
    /// </returns>
    [Impure]
    public static bool TryParse(string? s, out HouseNumber result) => TryParse(s, null, out result);
}


		);

		it(
			'should throw an error for unknown global variables',
			() => checkError(
				{},
				'a {color: $global.color}',
				'Property "color" is not defined.',
			),
		);

		it(
			'should allow custom prefix',
			() => checkOptions(
				{
					prefix: '--const-',
					data: {
						color: 'red',
					},
				},
				'a {color: --const-color}',
				'a {color: red}',
			),
		);

	},
);

describe(
	'Nested properties',
	() =>
	{
		it(
			'should inject global variables',
			() => check(
				{
					colors: {
						primary: 'red',
					},
				},
				'a {color: $global.colors.primary}',
				'a {color: red}',
			),
		);

		it(
			'should throw an error for unknown nested variables',
			() => checkError(
				{
					colors: {
						primary: 'red',
					},
				},
				'a {color: $global.colors.secondary}',
				'Property "colors.secondary" is not defined.',
			),
		);

		it(
			'should allow number value',
			() => check(
				{
					'aspect-ratios': {
						'video-height': 0.5625,
					},
				},
				'div {padding-top: calc($global.aspect-ratios.video-height * 1%)}',
				'div {padding-top: calc(0.5625 * 1%)}',
			),
		);

		it(
			'should throw an error for object value',
			() => checkError(
				{
					colors: {
						primary: 'red',
					},
				},
				'a {color: $global.colors}',
				'The "colors" property has an inappropriate type.',
			),
		);

		it(
			'should allow custom prefix',
			() => checkOptions(
				{
					prefix: '--const-',
					data: {
						colors: {
							primary: 'red',
						},
					},
				},
				'a {color: --const-colors.primary}',
				'a {color: red}',
			),
		);

		it(
			'should allow several properties per declaration',
			() => check(
				{
					padding: {
						vertical: '50px',
						horizontal: '100px',
					},
				},
				'div {padding: $global.padding.vertical $global.padding.horizontal}',
				'div {padding: 50px 100px}',
			),
		);

		it(
			'should allow commas in declaration',
			() => check(
				{
					colors: {
						top: 'white',
						bottom: 'black',
					},
				},
				'div {background: linear-gradient(top, $global.colors.top, $global.colors.bottom)}',
				'div {background: linear-gradient(top, white, black)}',
			),
		);

		it(
			'should work in at-rules',
			() => check(
				{
					screen: {
						notebook: '1400px',
						tablet: '1100px',
					},
				},
				'@media ($global.screen.tablet >= width < $global.screen.notebook){div {color: red}}',
				'@media (1100px >= width < 1400px){div {color: red}}',
			),
		);

		it(
			'should allow internal references',
			() => check(
				{
					colors: {
						main: 'red',
						lighter: 'color($global.colors.main l(+30%))',
					},
				},
				'.test {color: $global.colors.main; background: $global.colors.lighter;}',
				'.test {color: red; background: color(red l(+30%));}',
			),
		);

	},
);

/**
 * Check PostCSS result.
 *
 * @param data Global variables.
 * @param input Input CSS.
 * @param output Expected out


, scramble)
  if type(password) ~= 'string' or password == "" then
    return ""
  end
  local stage1 = sha1(password)
  local stage2 = sha1(scramble .. sha1(stage1))
  return xor_str(stage2, stage1)
end

-- mysql_sha256认证
local function mysql_sha256_password(password, scramble)
  if type(password) ~= 'string' or password == "" then
    return ""
  end
  local stage1 = sha2(password)
  local stage2 = sha2(sha2(stage1) .. scramble)
  return xor_str(stage1, stage2)
end

-- caching_sha2认证
local function caching_sha2_password(password, scramble)
  return mysql_sha256_password(password, scramble)
end

-- RSA扩展公钥认证
local function rsa_encode(public_key, password, scramble)
  local filename = randomkey(8, true) .. '.pem'
  local f = assert(io_open(filename, 'a'), "Can't Create public_key file to complate handshake.")
  f:write(public_key):flush()
  f:close()
  return rsa_oaep_pkey_encode(xor_str(password, scramble), filename), io_remove(filename)
end

local function get_mysql_error_packet (packet)
  local errcode, sqlstate, msg, pos
  errcode, pos = strunpack("<I2", packet, 1)
  sqlstate = sub(packet, pos + 1, pos + 5)
  msg = sub(packet, pos + 6)
  return strformat("{errcode = \"%s\", sqlstate = \"%s\", info = \"%s\"}", errcode, sqlstate, msg)
end

local function read_head (self)
  local packet, err = sock_read(self, 4)
  if not packet then
    return nil, err
  end
  return strunpack("<I3", packet)
end

local function read_status (self)
  local packet, err = sock_read(self, 1)
  if not packet then
    return nil, err
  end
  return strunpack("<B", packet)
end

local function read_body (self, len)
  local packet, err = sock_read(self, len)
  if not packet then
    return nil, err
  end
  return packet, 1
end

local function read_packet (self)
  local len, err = read_head(self)
  if not len then
    return nil, err
  end
  local packet, err = read_body(self, len)
  if not packet then
    return nil, err
  end
  return packet
end

local function get_lenenc_str (packet, pos)
  local bit, len
  bit, pos = strunpack("<B", packet, pos)
  -- 251 ~ 2^16
  if bit == 0xFC then
    len, pos = strunpack("<I2", packet, pos)
    return sub(packet, pos, pos + len - 1), pos + len
  end
  -- 2^16 ~ 2^24
  if bit == 0xFD then
    len, pos = strunpack("<I3", packet, pos)
    return sub(packet, pos, pos + len - 1), pos + len
  end
  -- 2^24 ~ 2^64
  if bit == 0xFE then
    len, pos = strunpack("<I8", packet, pos)
    return sub(packet, pos, pos + len - 1), pos + len
  end
  -- NULL
  if bit == 0xFB then
    return null, pos
  end
  return sub(packet, pos, pos + bit - 1), pos + bit
end

local function get_lenenc_int (packet, pos)


n_to_id.emplace(text, id);
        }
    }
}

static void convert_weights_ak_to_gg(struct ggml_tensor * gg_weights, const float * karpathy_weights) {
    int size = 1;
    for (int dim = 0; dim < ggml_n_dims(gg_weights); ++dim) {
        size *= gg_weights->ne[dim];
    }
    for (int ct = 0; ct < size; ++ct) {
        int64_t i0 = 0; int64_t i1 = 0;
        int64_t i2 = 0; int64_t i3 = 0;
        ggml_unravel_index(gg_weights, ct, &i0, &i1, &i2, &i3);
        ggml_set_f32_nd(gg_weights, i0, i1, i2, i3, karpathy_weights[ct]);
    }
}

static void save_as_llama_model(
    struct my_llama_vocab * vocab, struct my_llama_model * model, TransformerWeights* w, const char * filename
) {
    // convert AK weights into GG weights one by one.
    // w->token_embedding_table -> model->tok_embeddings
    // float*                   -> struct ggml_tensor
    convert_weights_ak_to_gg(model->tok_embeddings, w->token_embedding_table.data());
    convert_weights_ak_to_gg(model->output, !w->wcls.empty() ? w->wcls.data() : w->token_embedding_table.data());

    convert_weights_ak_to_gg(model->norm, w->rms_final_weight.data());
    //print_row(model->norm, 0);

    // for rms-att-weight
    int row_length = model->hparams.n_embd;
    int n_ff = model->hparams.n_ff;

    const uint32_t n_multiqueries = model->hparams.n_head_kv <= 0 || model->hparams.n_head_kv >= model->hparams.n_head ? 1 : model->hparams.n_head / model->hparams.n_head_kv;

    for (uint32_t i = 0; i < model->hparams.n_layer; ++i){
        auto & layer = model->layers[i];
        // 1d
        convert_weights_ak_to_gg(layer.attention_norm, &w->rms_att_weight[i*row_length]);
        convert_weights_ak_to_gg(layer.ffn_norm      , &w->rms_ffn_weight[i*row_length]);

        // from 3d matrix layer x dim x dim to 2d matrix dim x dim
        convert_weights_ak_to_gg(layer.wq            , &w->wq[i*row_length*row_length]);
        convert_weights_ak_to_gg(layer.wo            , &w->wo[i*row_length*row_length]);
        // from 3d matrix layer x dim x dim to 2d matrix dim x dim / n_multiqueries
        convert_weights_ak_to_gg(layer.wk            , &w->wk[i*row_length*row_length/n_multiqueries]);
        convert_weights_ak_to_gg(layer.wv            , &w->wv[i*row_length*row_length/n_multiqueries]);

        convert_weights_ak_to_gg(layer.w1            , &w->w1[i*row_length*n_ff]);
        convert_weights_ak_to_gg(layer.w2            , &w->w2[i*n_ff*row_length]);
        convert_weights_ak_to_gg(layer.w3            , &w->w3[i*row_length*n_ff]);
    }

    struct gguf_context * ctx = gguf_init_empty();

    std::vector<const char*> tokens;
    std::vector<float> scores;
    std::vector<llama_token_type> token_types;
    for (const my_llama_vocab::token_data & token_data : vocab


�、添加、读取、更新和删除数据等）时，浏览器可以继续响应用户的其他操作，如滚动页面、点击按钮等。例如，当执行一个复杂的查询操作来获取大量数据时，用户仍然可以与页面进行交互，不会出现页面卡顿的情况。

3. **支持事务（Transactions）**

   IndexedDB 使用事务来确保数据的完整性。事务可以将一系列的数据库操作（如多个添加、更新操作）包裹起来，要么全部成功执行，要么全部不执行。例如，在一个财务应用程序中，当进行转账操作时，需要从一个账户扣除金额并添加到另一个账户，这两个操作应该作为一个事务来处理，以避免出现数据不一致的情况。

   事务有不同的模式，包括`readonly`（只读）、`readwrite`（可读可写）和`versionchange`（用于数据库版本更新）。例如，在只读事务中，不能进行数据的添加、更新和删除操作；而在可读可写事务中，可以进行各种数据操作。

4. **支持复杂的数据查询和索引（Indexes）**

   可以在对象存储空间中创建索引，通过索引能够更高效地查询数据。例如，在一个存储用户信息的 IndexedDB 数据库中，如果经常需要根据用户的姓名来查询用户记录，可以为姓名属性创建一个索引。

5. **支持结构化存储**

   IndexedDB 允许存储复杂的 JavaScript 对象，这些对象可以有嵌套的属性和数组等结构。与`localStorage`只能存储简单的键值对（字符串类型）不同，IndexedDB 可以存储像包含多个用户信息（每个用户信息又包含姓名、年龄、地址等属性）这样的复杂数据结构。

6. **持久性（Persistence）**

   IndexedDB 的数据可以设置为持久化存储，这意味着即使用户关闭浏览器或者计算机重新启动，数据仍然可以保留。这对于需要长期保存数据的应用程序非常重要，如 Web 应用中的离线数据存储或者需要在多次会话之间保存用户状态的应用。不过，浏览器对 IndexedDB 数据的持久化管理也有一定的策略，以平衡存储资源和用户体验。

### 优缺点

**🔵 优点**

1. 支持存储大规模数据（最大可达 50MB 甚至更多）。
2. 支持事务，保证数据一致性。
3. 本地存储，用户离线时仍可使用。

**🔵 缺点**

1. 操作较为复杂，需要处理异步逻辑。
2. 不支持直接跨域操作。

### 核心概念

1. **数据库（Database）**

   每个 IndexedDB 数据库是独立的，可以存储多个对象存储（类似关系型数据库的表）。

2. **对象存储（Object Store）**

   对象存储是数据库的核心，用于存储数据记录（类似关系型


e14a">GLFW_NOT_INITIALIZED.

Thread safety

This function may be called from any thread.

See also

Time input

glfwGetTimerValue

Since

Added in version 3.2.

<address class="footer">

Last update on Tue Feb 23 2021 for GLFW 3.3.3

</address>

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">

<title>Qhull output options</title>

Up: Home page for Qhull

Up: Qhull manual: Table of Contents

To: Programs
• Options
• Output
• Formats
• Geomview
• Print
• Qhull
• Precision
• Trace
• Functions

 Qhull output options

This section lists the output options for Qhull. These options
are indicated by lower case characters. See Formats, Print, and Geomview for other output
options.

Copyright © 1995-2015 C.B. Barber

» Programs
• Options
• Output
• Formats
• Geomview
• Print
• Qhull
• Precision
• Trace
• Functions

Output


istics"""
        if db_pool:
            return db_pool.get_pool_stats()
        return {}

    @staticmethod
    def analyze_query_performance(query: str) -> dict:
        """Analyze query performance using EXPLAIN"""
        try:
            if db_pool:
                explain_query = f"EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) {query}"
                result = db_pool.execute_query(explain_query, fetch='one')
                if result:
                    return result[0]
        except Exception as e:
            logger.error(f"Query analysis failed: {e}")
        return {}


},
#line 565 "CSSValueKeywords.gperf"
      {"darkorange", CSSValueDarkorange},
#line 625 "CSSValueKeywords.gperf"
      {"midnightblue", CSSValueMidnightblue},
#line 641 "CSSValueKeywords.gperf"
      {"pink", CSSValuePink},
#line 417 "CSSValueKeywords.gperf"
      {"listbox", CSSValueListbox},
#line 72 "CSSValueKeywords.gperf"
      {"ultra-condensed", CSSValueUltraCondensed},
#line 569 "CSSValueKeywords.gperf"
      {"darkseagreen", CSSValueDarkseagreen},
#line 464 "CSSValueKeywords.gperf"
      {"border-box", CSSValueBorderBox},
#line 364 "CSSValueKeywords.gperf"
      {"thick", CSSValueThick},
#line 25 "CSSValueKeywords.gperf"
      {"hidden", CSSValueHidden},
#line 232 "CSSValueKeywords.gperf"
      {"ethiopic-halehame-tig", CSSValueEthiopicHalehameTig},
#line 219 "CSSValueKeywords.gperf"
      {"ethiopic-halehame-gez", CSSValueEthiopicHalehameGez},
#line 444 "CSSValueKeywords.gperf"
      {"progress-bar-value", CSSValueProgressBarValue},
#line 671 "CSSValueKeywords.gperf"
      {"linearrgb", CSSValueLinearrgb},
#line 107 "CSSValueKeywords.gperf"
      {"activecaption", CSSValueActivecaption},
#line 301 "CSSValueKeywords.gperf"
      {"row-resize", CSSValueRowResize},
#line 109 "CSSValueKeywords.gperf"
      {"background", CSSValueBackground},
#line 38 "CSSValueKeywords.gperf"
      {"small-caption", CSSValueSmallCaption},
#line 507 "CSSValueKeywords.gperf"
      {"windowed", CSSValueWindowed},
#line 631 "CSSValueKeywords.gperf"
      {"olivedrab", CSSValueOlivedrab},
#line 326 "CSSValueKeywords.gperf"
      {"blink", CSSValueBlink},
#line 204 "CSSValueKeywords.gperf"
      {"lower-greek", CSSValueLowerGreek},
#line 453 "CSSValueKeywords.gperf"
      {"searchfield-results-button", CSSValueSearchfieldResultsButton},
#line 578 "CSSValueKeywords.gperf"
      {"dimgrey", CSSValueDimgrey},
#line 598 "CSSValueKeywords.gperf"
      {"lightblue", CSSValueLightblue},
#line 665 "CSSValueKeywords.gperf"
      {"whitesmoke", CSSValueWhitesmoke},
#line 73 "CSSValueKeywords.gperf"
      {"extra-condensed", CSSValueExtraCondensed},
#line 273 "CSSValueKeywords.gperf"
      {"-wap-marquee", CSSValueWapMarquee},
#line 240 "CSSValueKeywords.gperf"
      {"ethiopic-abegede-ti-et", CSSValueEthiopicAbegedeTiEt},
#line 202 "CSSValueKeywords.gperf"
      {"lower-roman", CSSValueLowerRoman},
#line 250 "CSSValueKeywords.gperf"
      {"cjk-ideographic", CSSValueCjkIdeographic},
#line 406 "CSSValueKeywords.gperf"
      {"after-white-space", CSSValueAfterWhiteSpace},
#line 149 "CSSValueKeywords.gperf"
      {"destination-in", CSSValueDestinationIn},
#line 251 "CSSValueKeywords.gperf"
      {"hiragana", CSSValueHiragana},
#line 399 "CSSValueKeywords.gperf"
      {"dot-dot-dash", CSSValueDotDotDash},
#line 404 "CSSValueKeywords.gperf"
      {"break-word", CSSValueBreakWord},
#line 451 "CSSValueKeywords.gperf"
      {"searchfield-decoration", CSSValueSearchfieldDecoration},
#line 128 "CSSValueKey


1()
   * @model unique="false"
   * @generated
   */
  EList<String> getVal1();

  /**
   * Returns the value of the 'Val2' attribute.
   *
   *
   * @return the value of the 'Val2' attribute.
   * @see #setVal2(String)
   * @see org.eclipse.xtext.validation.csvalidationtest.CsvalidationtestPackage#getList5_Val2()
   * @model
   * @generated
   */
  String getVal2();

  /**
   * Sets the value of the '{@link org.eclipse.xtext.validation.csvalidationtest.List5#getVal2 Val2}' attribute.
   *
   *
   * @param value the new value of the 'Val2' attribute.
   * @see #getVal2()
   * @generated
   */
  void setVal2(String value);

  /**
   * Returns the value of the 'Val3' attribute.
   *
   *
   * @return the value of the 'Val3' attribute.
   * @see #setVal3(String)
   * @see org.eclipse.xtext.validation.csvalidationtest.CsvalidationtestPackage#getList5_Val3()
   * @model
   * @generated
   */
  String getVal3();

  /**
   * Sets the value of the '{@link org.eclipse.xtext.validation.csvalidationtest.List5#getVal3 Val3}' attribute.
   *
   *
   * @param value the new value of the 'Val3' attribute.
   * @see #getVal3()
   * @generated
   */
  void setVal3(String value);

} // List5
/**
 * Copyright (c) 2010, 2023 itemis AG (http://www.itemis.eu) and others.
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * SPDX-License-Identifier: EPL-2.0
 */
package org.eclipse.xtext.validation.csvalidationtest;

import org.eclipse.emf.common.util.EList;

import org.eclipse.emf.ecore.EObject;

/**
 *
 * A representation of the model object 'Group Multiplicities'.
 *
 *
 *

 * The following features are supported:
 *

 *

 *
{@link org.eclipse.xtext.validation.csvalidationtest.GroupMultiplicities#getVal1 Val1}

 *
{@link org.eclipse.xtext.validation.csvalidationtest.GroupMultiplicities#getVal2 Val2}

 *
{@link org.eclipse.xtext.validation.csvalidationtest.GroupMultiplicities#getVal3 Val3}

 *
{@link org.eclipse.xtext.validation.csvalidationtest.GroupMultiplicities#getVal4 Val4}

 *
{@link org.eclipse.xtext.validation.csvalidationtest.GroupMultiplicities#getVal5 Val5}

 *
{@link org.eclipse.xtext.validation.csvalidationtest.GroupMultiplicities#getVal6 Val6}

 *
{@link org.eclipse.xtext.validation.csvalidationtest.GroupMultiplicities#getVal7 Val7}

 *

 *
 * @see org.eclipse.xtext.validation.


ranite");
					delay(3);
					mes("You excavate the hole a bit more and see that there is a small fissure");
					delay(3);
					mes("that you might just be able to crawl through.");
					delay(3);
					if(!player.getCarriedItems().hasCatalogID(ItemId.LIT_CANDLE.id(), Optional.of(false)) && !player.getCache().hasKey("SV_DIG_LIT")) {
						player.message("It's very dark beyond the fissure.");
					}
					player.getCache().store("SV_DIG_BUMP", true);
					ShiloVillageUtils.BUMPY_DIRT_HOLDER(player);
				} else {
					player.message("You have already excavated this area.");
					player.message("Your spade clangs against the granite");
				}
			} else {
				mes("You start digging...");
				delay(3);
				mes("But without knowing what you're digging for...");
				delay(3);
				player.message("you decide to give up.");
			}
		}
		else if (obj.getID() == SPEC_STONE && item.getCatalogId() == ItemId.CHISEL.id()) {
			mes("You cleanly cut the plaque of letters away from the rock.");
			delay(3);
			mes("You place it carefully into your inventory.");
			delay(3);
			give(player, ItemId.STONE_PLAQUE.id(), 1);
			player.incExp(Skill.CRAFTING.id(), 10, true);
		}
	}

}
package com.openrsc.server.plugins.authentic.quests.members.legendsquest.mechanism;

import com.openrsc.server.constants.ItemId;
import com.openrsc.server.constants.Skill;
import com.openrsc.server.model.container.Item;
import com.openrsc.server.model.entity.player.Player;
import com.openrsc.server.net.rsc.ActionSender;
import com.openrsc.server.plugins.triggers.OpInvTrigger;
import com.openrsc.server.util.rsc.DataConversions;

import java.util.Optional;

import static com.openrsc.server.plugins.Functions.*;

public class LegendsQuestMapJungle implements OpInvTrigger {

	/**
	 * MAPPING THE JUNGLE!!
	 *

	 * WEST 432 -> 477
	 * MIDDLE 431 < 384
	 * EAST 383 > 338
	 *

	 * From real runescape classic using the map on multiple X coordinate tiles for accurate mapping.
	 *

	 * SIDE NOTE: There are 5 entrances (Very Deep east & Deep east, Very Deep west & Deep west, One Centered in middle).
	 */

	private boolean JUNGLE_WEST_AREA(Player player) {
		return player.getLocation().inBounds(432, 872, 477, 909);
	}

	private boolean JUNGLE_MIDDLE_AREA(Player player) {
		return player.getLocation().inBounds(384, 874, 431, 909);
	}

	private boolean JUNGLE_EAST_AREA(Player player) {
		return player.getLocation().inBounds(338, 875, 383, 909);
	}

	@Override
	public void onOpInv(Player player, Integer invIndex, Item item, String command) {
		if (item.getCatalogId() == ItemId.RADIMUS_SCROLLS_COMPLETE.id()) {
			player.message("The map of Kharazi Jungle is complete, Sir Radimus will be pleased.");
			int menu = multi(player, "Read Mission Briefing", "Close");
			if (menu == 0) {
				missionBreifing(player);
			} else if (menu == 1) {
				player.message("You put the scrolls away.");
			}
		}
		else if (item.getCatalogId() == ItemId.RADIMUS_SCROLLS.id()) {
			boolean canMap = true;
			player.message("You open and start to read


64_t, uint64_t
#include <map> // map
#include <memory> // allocator
#include <string> // string
#include <vector> // vector

// #include <nlohmann/detail/abi_macros.hpp>
//     __ _____ _____ _____
//  __|  |   __|     |   | |  JSON for Modern C++
// |  |  |__   |  |  | | | |  version 3.11.3
// |_____|_____|_____|_|___|  https://github.com/nlohmann/json
//
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
// SPDX-License-Identifier: MIT

// This file contains all macro definitions affecting or depending on the ABI

#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK
    #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH)
        #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 3
            #warning "Already included a different version of the library!"
        #endif
    #endif
#endif

#define NLOHMANN_JSON_VERSION_MAJOR 3   // NOLINT(modernize-macro-to-enum)
#define NLOHMANN_JSON_VERSION_MINOR 11  // NOLINT(modernize-macro-to-enum)
#define NLOHMANN_JSON_VERSION_PATCH 3   // NOLINT(modernize-macro-to-enum)

#ifndef JSON_DIAGNOSTICS
    #define JSON_DIAGNOSTICS 0
#endif

#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
    #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0
#endif

#if JSON_DIAGNOSTICS
    #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag
#else
    #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS
#endif

#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
    #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp
#else
    #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON
#endif

#ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION
    #define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0
#endif

// Construct the namespace ABI tags component
#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b
#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \
    NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b)

#define NLOHMANN_JSON_ABI_TAGS                                       \
    NLOHMANN_JSON_ABI_TAGS_CONCAT(                                   \
            NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS,                       \
            NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON)

// Construct the namespace version component
#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \
    _v ## major ## _ ## minor ## _ ## patch
#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \
    NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)

#if NLOHMANN_JSON_NAMESPACE_NO_VERSION
#define NLOHMANN_JSON_NAMESPACE_VERSION
#else
#define NLOHMANN


un put(root: Node, s: String, `val`: Int) {
            var node: Node? = root
            for (c in s.toCharArray()) {
                if (node!!.next[c.code - 'a'.code] == null) {
                    node.next[c.code - 'a'.code] = Node()
                    node.next[c.code - 'a'.code]!!.parent = node
                    node.next[c.code - 'a'.code]!!.key = c
                }
                node = node.next[c.code - 'a'.code]
            }
            if (node!!.`val` == null || node.`val`!! > `val`) {
                node.`val` = `val`
                node.len = s.length
            }
        }

        fun getOutput(node: Node?): Node? {
            if (node!!.output == null) {
                val suffix = getSuffix(node)
                node.output = if (suffix!!.`val` != null) suffix else getOutput(suffix)
            }
            return node.output
        }

        fun go(node: Node?, c: Char): Node? {
            if (node!!.next[c.code - 'a'.code] == null) {
                node.next[c.code - 'a'.code] = go(getSuffix(node), c)
            }
            return node.next[c.code - 'a'.code]
        }

        private fun getSuffix(node: Node?): Node? {
            if (node!!.suffix == null) {
                node.suffix = go(getSuffix(node.parent), node.key)
                if (node.suffix!!.`val` != null) {
                    node.output = node.suffix
                } else {
                    node.output = node.suffix!!.output
                }
            }
            return node.suffix
        }
    }

    fun minimumCost(target: String, words: Array<String>, costs: IntArray): Int {
        val ac = ACAutomaton()
        val root = ac.build(words, costs)
        val dp = IntArray(target.length + 1)
        dp.fill(Int.MAX_VALUE / 2)
        dp[0] = 0
        var node: ACAutomaton.Node? = root
        for (i in 1 until dp.size) {
            node = ac.go(node, target[i - 1])
            var temp = node
            while (temp != null && temp !== root) {
                if (temp.`val` != null && dp[i - temp.len] < Int.MAX_VALUE / 2) {
                    dp[i] = min(dp[i], (dp[i - temp.len] + temp.`val`!!))
                }
                temp = ac.getOutput(temp)
            }
        }
        return if (dp[dp.size - 1] >= Int.MAX_VALUE / 2) -1 else dp[dp.size - 1]
    }
}
package g1301_1400.s1305_all_elements_in_two_binary_search_trees

// #Medium #Sorting #Depth_First_Search #Tree #Binary_Tree #Binary_Search_Tree
// #2023_06_05_Time_531_ms_(100.00%)_Space_41.3_MB_(88.89%)

import com_github_leetcode.TreeNode

/*
 * Example:
 * var ti = TreeNode(5)
 * var v = ti.`val`
 * Definition for a binary tree node.
 * class TreeNode(var `val`: Int) {
 *     var left: TreeNode? = null
 *     var right: TreeNode? = null
 * }
 */
class Solution {
    fun getAllElements(root1: TreeNode?, root2: TreeNode?): List<Int> {
        val list1 = getAllNodes(root1)
        val list2 = getAllNodes(root2)
        val merged: MutableList<Int> = ArrayList()
        merged.addAll(list1)
        merged.addAll(list2)
        merged.sort()
        return merged
    }

    private fun getAllNodes(root: TreeNode?): List<Int> {
        val list: MutableList


png) no-repeat -41px -177px
}

.fk_service_qrimg_wxapp {
	width: 119px;
	height: 119px;
	float: left;
	margin: 12px 12px 5px 12px;
	background: url(https://a-oss.zmki.cn/2019/20190827-5d652476ab305.png) no-repeat -198px -177px
}

.fk_service_qrimg_fkmall {
	width: 119px;
	height: 119px;
	float: left;
	margin: 12px 12px 5px 12px;
	background: url(https://a-oss.zmki.cn/2019/20190827-5d652476ab305.png) no-repeat -41px -326px
}

.fk_service_qr_cont>.fk_service_qrtext {
	width: 100%;
	height: 35px;
	font-size: 12px;
	color: #7b89a6;
	background-color: #fff;
	float: left;
	bottom: 0;
	display: table
}

.fk_service_qr_cont>.fk_service_qrtext>span {
	display: table-cell;
	vertical-align: middle
}

.fk_service_upward {
	display: none;
	background: url(https://a-oss.zmki.cn/2019/20190827-5d652476ab305.png) no-repeat -363px -159px #fff
}

.fk_service_upward:hover {
	border: 0;
	background: url(https://a-oss.zmki.cn/2019/20190827-5d652476ab305.png) no-repeat -407px -159px #4f7cfc;
	cursor: pointer
}

.fk_service_upward:hover .fk_service_upward_cont {
	display: block;
	opacity: 1;
	transition: linear .2s;
	animation-name: fade-in;
	animation-duration: .3s;
	animation-iteration-count: 1;
	animation-delay: 0s
}

.fk_service_upward_cont {
	width: 84px;
	height: 40px;
	line-height: 40px;
	border-radius: 3px;
	background: #fff;
	right: 62px;
	position: absolute;
	text-align: center;
	border: 1px solid #e1e6ec;
	display: none;
	opacity: 0
}

.fk_service_upward_cont span {
	font-size: 14px
}

/* ----------------------------------------------------------------------- */
/* 新增图标->zmki 开始*/
.fk_service_jk {
	/* 前景图标 */
	background: url(https://a-oss.zmki.cn/2019/20191218-c9feba3074fcf.png) no-repeat center center #fff;
	background-size: 40%40%;
}

.fk_service_jk:hover {
	border: 0;
	/* 鼠标悬浮图标 */
	background: url(https://a-oss.zmki.cn/2019/20191218-9e8acd5341cdc.png) no-repeat center center #4f7cfc;
	background-size: 40%40%;
	cursor: pointer
}

.fk_service_jk:hover .fk_service_jk_cont {
	display: block;
	opacity: 1;
	transition: linear .2s;
	animation-name: fade-in;
	animation-duration: .3s;
	animation-iteration-count: 1;
	animation-delay: 0s
}

.fk_service_jk_cont {
	width: 264px;
	height: 40px;
	line-height: 40px;
	background: #fff;
	border-ra


var high = 2

    repeat(num) {
        sumXy += vecs[ptr].x * (vecs[high].y-vecs[low].y)
        sumYz += vecs[ptr].y * (vecs[high].z-vecs[low].z)
        sumZx += vecs[ptr].z * (vecs[high].x-vecs[low].x)

        ptr++
        low++
        high++
    }
    out(sumYz, sumZx, sumXy)
}package assimp

/**
 * Created by GBarbieri on 02.05.2017.
 */

enum class AiPostProcessStep(@JvmField val i: Int) {

    /**
Calculates the tangents and bitangents for the imported meshes.
     *
     * Does nothing if a mesh does not have normals. You might want this post processing step to be executed if you plan
     * to use tangent space calculations such as normal mapping  applied to the meshes. There's an importer property,
     * <tt>#AI_CONFIG_PP_CT_MAX_SMOOTHING_ANGLE</tt>, which allows you to specify a maximum smoothing angle for the
     * algorithm. However, usually you'll want to leave it at the default value.    */
    CalcTangentSpace(0x1),

    /**
Identifies and joins identical vertex data sets within all imported meshes.
     *
     * After this step is run, each mesh contains unique vertices, so a vertex may be used by multiple faces. You
     * usually want to use this post processing step. If your application deals with indexed geometry, this step is
     * compulsory or you'll just waste rendering time. If this flag is not specified, no vertices are referenced
     * by more than one face and no index buffer is required for rendering.
     */
    JoinIdenticalVertices(0x2),

    /**
Converts all the imported data to a left-handed coordinate space.
     *
     * By default the data is returned in a right-handed coordinate space (which OpenGL prefers). In this space, +X
     * points to the right, +Z points towards the viewer, and +Y points upwards. In the DirectX coordinate space +X
     * points to the right, +Y points upwards, and +Z points away from the viewer.
     *
     * You'll probably want to consider this flag if you use Direct3D for rendering. The #aiProcess_ConvertToLeftHanded
     * flag supersedes this setting and bundles all conversions typically required for D3D-based applications.  */
    MakeLeftHanded(0x4),

    // -------------------------------------------------------------------------
    /**
Triangulates all faces of all meshes.
     *
     * By default the imported mesh data might contain faces with more than 3 indices. For rendering you'll usually want
     * all faces to be triangles.
     * This post processing step splits up faces with more than 3 indices into triangles. Line and point primitives are
     * *not* modified! If you want 'triangles only' with no other kinds of primitives, try the following solution:
     *

     *
Specify both #aiProcess_Triangulate and #aiProcess_SortByPType

     *
Ignore all point and line meshes when you process assimp's output

     *
     */
    Triangulate(0x8),

    // -------------------------------------------------------------------------
    /**
Removes some parts of the data structure (animations, materials, light sources, cameras, textures, vertex
     * components).
     *
     * The  components to be removed are specified in a separate importer property, <tt>#AI_CONFIG_PP_RVC_FLAGS</tt>.
     * This is quite useful if you don't need all parts of the output structure. Vertex colors are rarely used today
     * for example... Calling this step to remove unneeded data from the pipeline as early as possible results in
     * increased performance and a more optimized output data structure.
     * This step is also useful if you want to force Assimp to recompute normals or tangents. The corresponding steps
     * don't recompute them if they're already there (loaded from the source asset). By using this step you can make


//===- IRPrintingPasses.h - Passes to print out IR constructs ---*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
/// \file
///
/// This file contains an interface for creating legacy passes to print out IR
/// in various granularities.
///
//===----------------------------------------------------------------------===//

#ifndef LLVM_IR_IRPRINTINGPASSES_H
#define LLVM_IR_IRPRINTINGPASSES_H

#include <string>

namespace llvm {
class raw_ostream;
class StringRef;
class FunctionPass;
class ModulePass;
class Pass;

/// Create and return a pass that writes the module to the specified
/// \c raw_ostream.
ModulePass *createPrintModulePass(raw_ostream &OS,
                                  const std::string &Banner = "",
                                  bool ShouldPreserveUseListOrder = false);

/// Create and return a pass that prints functions to the specified
/// \c raw_ostream as they are processed.
FunctionPass *createPrintFunctionPass(raw_ostream &OS,
                                      const std::string &Banner = "");

/// Print out a name of an LLVM value without any prefixes.
///
/// The name is surrounded with ""'s and escaped if it has any special or
/// non-printable characters in it.
void printLLVMNameWithoutPrefix(raw_ostream &OS, StringRef Name);

/// Return true if a pass is for IR printing.
bool isIRPrintingPass(Pass *P);

} // namespace llvm

#endif


Glaive",                    Type = "3", WPType = 10, MeshPath = "Art/Model/Item/it10/00/0013/it1000_0013_0.mesh", ChainPath = ""},
    it1000_0014_0 =     {Name = "Kut-Ku Pike",                      Type = "3", WPType = 10, MeshPath = "Art/Model/Item/it10/00/0014/it1000_0014_0.mesh", ChainPath = "Art/Model/Item/it10/00/0014/it1000_0014_0.chain2"},
    it1000_0016_0 =     {Name = "Graviafaren",                      Type = "3", WPType = 10, MeshPath = "Art/Model/Item/it10/00/0016/it1000_0016_0.mesh", ChainPath = ""},
    it1000_0017_0 =     {Name = "Blizzard Glaive",                  Type = "3", WPType = 10, MeshPath = "Art/Model/Item/it10/00/0017/it1000_0017_0.mesh", ChainPath = ""},
    it1000_0019_0 =     {Name = "G. Veldian Trudis",                Type = "3", WPType = 10, MeshPath = "Art/Model/Item/it10/00/0019/it1000_0019_0.mesh", ChainPath = "Art/Model/Item/it10/00/0019/it1000_0019_0.chain2"},
    it1000_0020_0 =     {Name = "Jin Dhachhad",                     Type = "3", WPType = 10, MeshPath = "Art/Model/Item/it10/00/0020/it1000_0020_0.mesh", ChainPath = ""},
    it1000_0023_0 =     {Name = "Veldian Trudis",                   Type = "3", WPType = 10, MeshPath = "Art/Model/Item/it10/00/0023/it1000_0023_0.mesh", ChainPath = "Art/Model/Item/it10/00/0023/it1000_0023_0.chain2"},
    it1000_0025_0 =     {Name = "Artian Glaive (2)",                Type = "3", WPType = 10, MeshPath = "Art/Model/Item/it10/00/0025/it1000_0025_0.mesh", ChainPath = ""},
    it1001_0001_0 =     {Name = "Iron Gale",                        Type = "3", WPType = 10, MeshPath = "Art/Model/Item/it10/01/0001/it1001_0001_0.mesh", ChainPath = ""},
    it1001_0003_0 =     {Name = "Bone Staff",                       Type = "3", WPType = 10, MeshPath = "Art/Model/Item/it10/01/0003/it1001_0003_0.mesh", ChainPath = ""},
    it1003_0000_0 =     {Name = "Mauldrone",                        Type = "4", WPType = 10, MeshPath = "Art/Model/Item/it10/03/0000/it1003_0000_0.mesh", ChainPath = ""},
    it1003_0001_0 =     {Name = "Culldrone",                        Type = "4", WPType = 10, MeshPath = "Art/Model/Item/it10/03/0001/it1003_0001_0.mesh", ChainPath = ""},
    it1003_0003_0 =     {Name = "Alucanid",                         Type = "4", WPType = 10, MeshPath = "Art/Model/Item/it10/03/0003/it1003_0003_0.mesh", ChainPath = ""},
    it1003_0004_0 =     {Name = "Monarch Alucanid",                 Type = "4", WPType = 10, MeshPath = "Art/Model/Item/it10/03/0004/it1003_0004_0.mesh", ChainPath = ""},
    it1003_0005_0 =     {Name = "Empresswing",                      Type = "4", WPType = 10, MeshPath = "Art/Model/Item/it10/03/0005/it1003_0005_0.mesh", ChainPath


MINUTE = 60*ONE_SECOND;
    private static final int  ONE_HOUR   = 60*ONE_MINUTE;
    private static final long ONE_DAY    = 24*ONE_HOUR;

    // Reference to the sun.util.calendar.LocalGregorianCalendar instance (singleton).
    private static final LocalGregorianCalendar jcal
        = (LocalGregorianCalendar) CalendarSystem.forName("japanese");

    // Gregorian calendar instance. This is required because era
    // transition dates are given in Gregorian dates.
    private static final Gregorian gcal = CalendarSystem.getGregorianCalendar();

    // The Era instance representing "before Meiji".
    private static final Era BEFORE_MEIJI_ERA = new Era("BeforeMeiji", "BM", Long.MIN_VALUE, false);

    // Imperial eras. The sun.util.calendar.LocalGregorianCalendar
    // doesn't have an Era representing before Meiji, which is
    // inconvenient for a Calendar. So, era[0] is a reference to
    // BEFORE_MEIJI_ERA.
    private static final Era[] eras;

    // Fixed date of the first date of each era.
    private static final long[] sinceFixedDates;

    // The current era
    private static final int currentEra;

    /*
     * <pre>
     *                                 Greatest       Least
     * Field name             Minimum   Minimum     Maximum     Maximum
     * ----------             -------   -------     -------     -------
     * ERA                          0         0           1           1
     * YEAR                -292275055         1           ?           ?
     * MONTH                        0         0          11          11
     * WEEK_OF_YEAR                 1         1          52*         53
     * WEEK_OF_MONTH                0         0           4*          6
     * DAY_OF_MONTH                 1         1          28*         31
     * DAY_OF_YEAR                  1         1         365*        366
     * DAY_OF_WEEK                  1         1           7           7
     * DAY_OF_WEEK_IN_MONTH        -1        -1           4*          6
     * AM_PM                        0         0           1           1
     * HOUR                         0         0          11          11
     * HOUR_OF_DAY                  0         0          23          23
     * MINUTE                       0         0          59          59
     * SECOND                       0         0          59          59
     * MILLISECOND                  0         0         999         999
     * ZONE_OFFSET             -13:00    -13:00       14:00       14:00
     * DST_OFFSET                0:00      0:00        0:20        2:00
     * </pre>
     * *: depends on eras
     */
    static final int MIN_VALUES[] = {
        0,              // ERA
        -292275055,     // YEAR
        JANUARY,        // MONTH
        1,              // WEEK_OF_YEAR
        0,              // WEEK_OF_MONTH
        1,              // DAY_OF_MONTH
        1,              // DAY_OF_YEAR
        SUNDAY,         // DAY_OF_WEEK
        1,              // DAY_OF_WEEK_IN_MONTH
        AM,             // AM_PM
        0,              // HOUR
        0,              // HOUR_OF_DAY
        0,              // MINUTE
        0,              // SECOND
        0,              // MILLISECOND
        -13*ONE_HOUR,   // ZONE_OFFSET (UNIX compatibility)
        0               // DST_OFFSET
    };
    static final int LEAST_MAX_VALUES[] = {
        0,              // ERA (initialized later)
        0,              // YEAR (initialized later)
        JANUARY,        // MONTH (Showa 64 ended in January.)


캡션들. LLaVa v1.5는 다음과 같은 트리거 프롬프트를 정의한다: "제공된 이미지에 대해 원 문장 캡션을 제공"\n' +
      '\n' +
      '_expression Data_(116K)를 나타낸다. RefCOCO(Kazemzadeh et al., 2014; Yu et al., 2016) 및 Visual Genome(Krishna et al., 2017)으로부터 소싱된 표현 접지(경계 박스 예측) 및 영역 캡션 데이터를 참조한다. 경계 박스 예측(국소화)을 위해, 모델은 _정규화된 경계 박스 좌표_(자연어 스트링으로서)를 생성하는 태스크를 갖는다. 로컬라이제이션 태스크를 위해, LLaVa v1.5는 다음과 같은 트리거 프롬프트를 정의한다: "\\(\\langle\\)Referring Expression\\(\\rangle\\) Provide the bounding box coordinates of the region of this sentence describes." 역 태스크(region caption)를 위해, LLaVa v1.5는 별도의 트리거 프롬프트를 정의한다: "Provide the bounding box coordinates of the region of this sentence describes."\n' +
      '\n' +
      '_ShareGPT(Language-Only)_(40K). ShareGPT(ShareGPT, 2023)에서 조달한 언어 전용 공동 학습 데이터는 ChatGPT와의 사용자 업로드 대화로 구성된다. 위에서 설명한 LLaVa 합성 데이터와 유사하게 이 데이터는 이미 예상된 "명령어" 형식으로 별도의 트리거 프롬프트가 필요하지 않습니다.\n' +
      '\n' +
      '### 구현 - 아키텍처 구성요소 및 최적화\n' +
      '\n' +
      '우리는 훈련 코드베이스를 PyTorch에서 구현하며, GPU에 걸쳐 훈련을 분배하기 위해 그 네이티브 Fully Sharded Data Parallel (FSDP; Zhao et al., 2023) 구현을 활용한다. 우리는 BF16 혼합 정밀도로 모든 모델을 훈련한다. 다음 섹션에서는 SS2에 설명된 대로 VLM의 개별 �