');

fechoPontos.addEventListener('click', () => {
    const points = elements.points.map((point) => point.getCoords()[0]);

    if (points.length === 0) return;

    const polygonPoints: Coordinate[] = quickHull(points);

    const polygon = new Polygon(polygonPoints[0]);

    for (let i = 1; i < polygonPoints.length; i++) {
        polygon.addLine(polygonPoints[i - 1]);
        polygon.changeCurrentLineEnd(polygonPoints[i]);
    }

    elements.addElement(polygon);
});

fechoSelecionados.addEventListener('click', () => {
    const selectState = store.getState().select;
    const points = selectState.elements
        .map((point) => point.getCoords())
        .flat();

    if (points.length === 0) return;

    const polygonPoints: Coordinate[] = quickHull(points);

    if (
        polygonPoints[0].x === polygonPoints[polygonPoints.length - 1].x &&
        polygonPoints[0].y === polygonPoints[polygonPoints.length - 1].y
    ) {
        polygonPoints.pop();
    }

    const polygon = new Polygon(polygonPoints[0]);

    for (let i = 1; i < polygonPoints.length; i++) {
        polygon.addLine(polygonPoints[i - 1]);
        polygon.changeCurrentLineEnd(polygonPoints[i]);
    }

    elements.addElement(polygon);
});
/**
 * Copyright (c) 2018 Mathis Zeiher
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

/* tslint:disable */

import { TestWithMultipleProperties } from './components/TestWithMultipleProperties';
import { TestWithMultiplePropertiesWithType } from './components/TestWithMultiplePropertiesWithType';
import { TestWithMultiplePropertiesWithTypeStage2 } from './components/TestWithMultiplePropertiesWithType.stage2';
import { TestWithMultiplePropertiesWithTypeTS } from './components/TestWithMultiplePropertiesWithTypeTS';
import { TestWithMultiplePropertiesLazy } from './components/TestWithMultiplePropertiesLazy';
import { TestWithMultiplePropertiesWithTypeLazy } from './components/TestWithMultiplePropertiesWithTypeLazy';
import { TestWithMultiplePropertiesWithTypeStage2Lazy } from './components/TestWithMultiplePropertiesWithTypeLazy.stage2';
import { TestWithMultiplePropertiesWithTypeTSLazy } from './components/TestWithMultiplePropertiesWithTypeTSLazy';

export type TESTABLECLASSES = TestWithMultipleProperties |
  TestWithMultiplePropertiesWithType |
  TestWithMultiplePropertiesWithTypeStage2 |
  TestWithMultiplePropertiesWithTypeTS |
  TestWithMultiplePropertiesLazy |
  TestWithMultiplePropertiesWithTypeLazy |
  TestWithMultiplePropertiesWithTypeStage2Lazy |
  TestWithMultiplePropertiesWithTypeTSLazy;

const propertyTemplate = (ctor: { new(): TESTABLECLASSES }, property: string, message: string) => `[DEPRECATED] [${ctor.name}] property ${property} is deprecated: ${message || ''}`;
const methodTemplate = (ctor: { new(): TESTABLECLASSES }, method: string, message: string) => `[DEPRECATED] [


S.CalloftheWild:IsCastable() then
    if Cast(S.CalloftheWild, Settings.BeastMastery.GCDasOffGCD.CallOfTheWild) then return "call_of_the_wild dr_cleave 12"; end
  end
  -- explosive_shot,if=talent.thundering_hooves
  if S.ExplosiveShot:IsReady() and (S.ThunderingHooves:IsAvailable()) then
    if Cast(S.ExplosiveShot, Settings.CommonsOGCD.GCDasOffGCD.ExplosiveShot, nil, not TargetInRange40y) then return "explosive_shot dr_cleave 14"; end
  end
  -- Localize buff.withering_fire.tick_time_remains
  local WFTTR = 999
  if Player:BuffUp(S.WitheringFireBuff) then
    WFTTR = 4 - S.BlackArrow:TimeSinceLastCast()
  end
  -- kill_command,if=buff.withering_fire.tick_time_remains>gcd&buff.withering_fire.tick_time_remains<3|buff.withering_fire.down
  if S.KillCommand:IsReady() and (WFTTR > Player:GCD() and WFTTR < 3 or Player:BuffDown(S.WitheringFireBuff)) then
    if Cast(S.KillCommand, nil, nil, not Target:IsSpellInRange(S.KillCommand)) then return "kill_command dr_cleave 16"; end
  end
  -- barbed_shot,target_if=min:dot.barbed_shot.remains,if=buff.withering_fire.tick_time_remains>0.5&buff.withering_fire.tick_time_remains<3|buff.withering_fire.down
  if S.BarbedShot:IsCastable() and (WFTTR > 0.5 and WFTTR < 3 or Player:BuffDown(S.WitheringFireBuff)) then
    if Everyone.CastTargetIf(S.BarbedShot, Enemies40y, "min", EvaluateTargetIfFilterBarbedShot, nil, not Target:IsSpellInRange(S.BarbedShot)) then return "barbed_shot dr_cleave 18"; end
  end
  -- cobra_shot,if=buff.withering_fire.down&focus.time_to_max<gcd*2
  if S.CobraShot:IsReady() and (Player:BuffDown(S.WitheringFireBuff) and Player:FocusTimeToMax() < Player:GCD() * 2) then
    if Cast(S.CobraShot, nil, nil, not Target:IsSpellInRange(S.CobraShot)) then return "cobra_shot dr_cleave 20"; end
  end
  -- explosive_shot
  if S.ExplosiveShot:IsReady() then
    if Cast(S.ExplosiveShot, Settings.CommonsOGCD.GCDasOffGCD.ExplosiveShot, nil, not Target:IsSpellInRange(S.ExplosiveShot)) then return "explosive_shot dr_cleave 22"; end
  end
end

local function DRST()
  -- kill_shot
  if S.BlackArrow:IsReady() then
    if Cast(S.BlackArrow, nil, nil, not Target:IsSpellInRange(S.BlackArrow)) then return "kill_shot dr_st 2"; end
  end
  -- bestial_wrath,if=cooldown.call_of_the_wild.remains>30|!talent.call_of_the_wild|time_to_die.remains<cooldown.call_of_the_wild.remains
  if CDsON() and S.BestialWrath:IsCastable() and (S.CalloftheWild:CooldownRemains() > 30 or not S.CalloftheWild:IsAvailable() or Target:TimeToDie() < S.CalloftheWild:CooldownRemains()) then
    if Cast(S.BestialWrath, Settings.BeastMastery.


/* mpz_init_set_d(integer, val) -- Initialize and assign INTEGER with a double
   value VAL.

Copyright 1996, 2000, 2001, 2012, 2015 Free Software Foundation, Inc.

This file is part of the GNU MP Library.

The GNU MP Library is free software; you can redistribute it and/or modify
it under the terms of either:

  * the GNU Lesser General Public License as published by the Free
    Software Foundation; either version 3 of the License, or (at your
    option) any later version.

or

  * the GNU General Public License as published by the Free Software
    Foundation; either version 2 of the License, or (at your option) any
    later version.

or both in parallel, as here.

The GNU MP Library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received copies of the GNU General Public License and the
GNU Lesser General Public License along with the GNU MP Library.  If not,
see https://www.gnu.org/licenses/.  */

#include "gmp-impl.h"

void
mpz_init_set_d (mpz_ptr dest, double val)
{
  static const mp_limb_t dummy_limb=0xc1a0;

  ALLOC (dest) = 0;
  SIZ (dest) = 0;
  PTR (dest) = (mp_ptr) &dummy_limb;
  mpz_set_d (dest, val);
}


i], 7, 7, 6, 6);
        if (i < lastDotsX.length - 1) {
          lastDotsX[i] = lastDotsX[i + 1];
          lastDotsY[i] = lastDotsY[i + 1];
        } else {
          lastDotsX[i] = dot_x;
          lastDotsY[i] = dot_y;
        }
      }
      g.setColor(base);

      g.fillRoundRect(dot_x, dot_y, 7, 7, 6, 6);

    }

  };

  DrawItem mDrawGraph = new DrawItem() {
    int[] xp = new int[0];
    int[] yp = new int[0];

    @Override
    public void paint(Graphics2D g, int w, int h) {
      g.setColor(drawing);
      if (xPoints.length == 0) {
        return;
      }
      if (xp.length < xPoints[0].length * 2) {
        xp = new int[xPoints[0].length * 2];
        yp = new int[xPoints[0].length * 2];
      }
      int draw_width = w - ins_left - ins_right;
      int draw_height = h - ins_top - ins_left;

      for (int k = 0; k < xPoints.length; k++) {
        if (xPoints[k] == null || yPoints[k] == null) {
          continue;
        }
        for (int i = 0; i < xPoints[k].length; i++) {
          float x = draw_width * (xPoints[k][i] - minx)
              / (maxx - minx) + ins_left;
          float y = draw_height
              * (1 - (yPoints[k][i] - miny) / (maxy - miny))
              + ins_top;
          xp[i] = (int) x;
          yp[i] = (int) y;
        }
        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g.setColor(pointColor[k]);
        g.setStroke(stroke);
        switch (pointMode[k]) {
          case -1:
            break;
          case RANGE_MODE:
            for (int i = 0; i < xPoints[k].length; i++) {
              float x = draw_width * (xPoints[k][i] - minx)
                  / (maxx - minx) + ins_left;
              float y1 = draw_height
                  * (1 - (yPoints[k][i] - miny) / (maxy - miny))
                  + ins_top;
              float y2 = draw_height
                  * (1 - (yPoints[k - 1][i] - miny) / (maxy - miny))
                  + ins_top;
              xp[i] = (int) x;
              yp[i] = (int) y1;
              int i2 = xPoints[k].length * 2 - i - 1;
              xp[i2] = (int) x;
              yp[i2] = (int) y2;
            }
            g.fillPolygon(xp, yp, xPoints[k].length * 2);

            if (selected_node >= 0) {
              float x_center = draw_width * (xPoints[selected_graph][selected_node] - minx)
                  / (maxx - minx) + ins_left;
              float x_min = x_center - 0.01f;
              if (selected_node > 0) {
                x_min = draw_width * (xPoints[selected_graph][selected_node - 1] - minx)
                    / (maxx - minx) + ins_left;
              }
              float x_max = x_center;
              if (selected_node < xPoints[selected_graph].length - 1) {


,
                vec![],
            ),
            Html::button(
                vec![Attribute::on_click(Message::FetchPullRequests)],
                vec![Html::text("Fetch PRs")],
            ),
            pull_requests_view(&model.pull_requests),
        ],
    )
}

fn pull_requests_view(data_loading: &DataLoading<Vec<PullRequest>>) -> Html<Message> {
    Html::div(
        vec![],
        match data_loading {
            DataLoading::Loading => vec![Html::text("Loading...")],
            DataLoading::Error => vec![Html::text("Error")],
            DataLoading::Loaded(pull_requests) => {
                pull_requests.iter().map(pull_request_view).collect()
            }
        },
    )
}

fn pull_request_view(pull_request: &PullRequest) -> Html<Message> {
    Html::p(
        vec![],
        vec![Html::text(&format!(
            "#{} {}: {}",
            pull_request.number, pull_request.title, pull_request.state
        ))],
    )
}
#[cfg(test)]
mod tests {
    use simput::input;
    #[test]
    fn input_single_line() {
        let line = input!(Line);
        assert_eq!("The quick brown fox jumps over the lazy dog.", line);
    }

    #[test]
    fn input_single_normal_type() {
        let num = input!(i32);
        assert_eq!(13i32, num);
    }

    #[test]
    fn input_multiple_normal_type() {
        let (num1, num2) = input!(i32, f64);
        assert_eq!(13i32, num1);
        assert_eq!(64f64, num2);
    }

    #[test]
    fn input_multiple_mixed_type() {
        let (num1, line1, line2, num2) = input!(i32, Line, Line, f64);
        assert_eq!(13i32, num1);
        assert_eq!("Lorem ipsum", line1);
        assert_eq!("Dolor sit amet", line2);
        assert_eq!(64f64, num2);
    }
}
// Copyright 2020-2021 <NAME>
// SPDX-License-Identifier: Apache-2.0

use criterion::{criterion_group, criterion_main, Criterion};

use store::{cache, Cache};

fn bench_compression(c: &mut Criterion) {
    let mut cache = Cache::new();

    c.bench_function("Write to cache", |b| {
        b.iter(|| {
            cache.insert(b"test", b"values", None);
        });
    });
}

fn bench_compress(c: &mut Criterion) {
    let mut cache = Cache::new();

    cache.insert(b"test".to_vec(), b"values".to_vec(), None);

    c.bench_function("Read from cache", |b| {
        b.iter(|| {
            cache.get(&b"test".to_vec());
        });
    });
}

fn bench_decompress(c: &mut Criterion) {
    cache! {
          fn fib(n: u32) -> u32 => {
           match n {
               0 => 1,
               1 => 1,
               _ => fib(n - 1) + fib(n - 2),
            }
          }
    }

    fib(20);

    c.bench_function("Read from Cached function", |b| {
        b.iter(|| {
            FIB_CACHE.lock().unwrap().get(&20);
        });
    });
}

criterion_group!(benches, bench_compression, bench_compress, bench_decompress);
criterion_main!(benches);
#[cfg_attr(feature = "serialize-impl", derive(serde::Serialize))]
#[derive(Debug, Eq, PartialEq)]
pub enum Edit<'a, T: ?Sized, Diff> {
    Copy(&'a T),
    VariantChanged(&'a T, &'a T),
    AssociatedChanged(Diff),
}

impl<'a, T: ?Sized, Diff> Edit<'a, T, Diff> {
    pub fn is_copy(&self) ->


def test_unload(self):
    image_encoder = self.get_image_encoder(repo_id='h94/IP-Adapter',
        subfolder='models/image_encoder')
    pipeline = StableDiffusionPipeline.from_pretrained(
        'runwayml/stable-diffusion-v1-5', image_encoder=image_encoder,
        safety_checker=None, torch_dtype=self.dtype)
    before_processors = [attn_proc.__class__ for attn_proc in pipeline.unet
        .attn_processors.values()]
    pipeline.to(torch_device)
    pipeline.load_ip_adapter('h94/IP-Adapter', subfolder='models',
        weight_name='ip-adapter_sd15.bin')
    pipeline.set_ip_adapter_scale(0.7)
    pipeline.unload_ip_adapter()
    assert getattr(pipeline, 'image_encoder') is None
    assert getattr(pipeline, 'feature_extractor') is not None
    after_processors = [attn_proc.__class__ for attn_proc in pipeline.unet.
        attn_processors.values()]
    assert before_processors == after_processors


5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/></svg>');background-repeat:no-repeat;background-size:1rem 1rem}pre.sourceCode:hover>.code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="rgb(94, 94, 94)" viewBox="0 0 16 16"><path d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z"/></svg>')}pre.sourceCode:hover>.code-copy-button:hover>.bi::before{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="rgb(71, 88, 171)" viewBox="0 0 16 16"><path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/><path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/></svg>')}pre.sourceCode:hover>.code-copy-button-checked:hover>.bi::before{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="rgb(71, 88, 171)"  viewBox="0 0 16 16"><path d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z"/></svg>')}main ol ol,main ul ul,main ol ul,main ul ol{margin-bottom:1em}ul>li:not(:has(>p))>ul,ol>li:not(:has(>p))>ul,ul>li:not(:has(>p))>ol,ol>li:not(:has(>p))>ol{margin-bottom:0}ul>li:not(:has(>p))>ul>li:has(>p),ol>li:not(:has(>p))>ul>li:has(>p),ul>li:not(:has(>p))>ol>li:has(>p),ol>li:not(:has(>p))>ol>li:has(>p){margin-top:1rem}body{margin:0}main.page-columns>header>h1.title,main.page-columns>header>.title.h1{margin-bottom:0}@media(min-width: 992px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc


onth);
    }

    #[test]
    #[should_panic]
    fn test_calculate_deltat_wrong_year_min_2000() {
        let year = -2000;
        let month = 1;
        spa::calculate_deltat(&year, &month);
    }

    #[test]
    #[should_panic]
    fn test_calculate_deltat_wrong_month_0() {
        let year = 2000;
        let month = 0;
        spa::calculate_deltat(&year, &month);
    }

    #[test]
    #[should_panic]
    fn test_calculate_deltat_wrong_month_13() {
        let year = 2000;
        let month = 13;
        spa::calculate_deltat(&year, &month);
    }

    #[test]
    fn test_julian_day() {
        let timestamp = 1357000200;
        assert_eq!(2456293.5208333335, spa::julian_day(&timestamp));
        // taken from A4.1:
        let timestamp = 582724800;
        assert_eq!(2447332.0, spa::julian_day(&timestamp));
    }

    #[test]
    fn test_julian_ephemeris_day() {
        let jd = 2456293.5208333335;
        let delta_t = 64.5;
        assert_eq!(2456293.521579861, spa::julian_ephemeris_day(&jd, &delta_t));
    }

    #[test]
    fn test_julian_century() {
        let jd = 2456293.5208333335;
        assert_eq!(0.13000741501255272, spa::julian_century(&jd));
    }

    #[test]
    fn test_julian_ephemeris_century() {
        let jde = 2456293.521579861;
        assert_eq!(0.1300074354513669, spa::julian_ephemeris_century(&jde));
    }

    #[test]
    fn test_julian_ephemeris_millennium() {
        let jde = 0.1300074354513669;
        assert_eq!(0.01300074354513669, spa::julian_ephemeris_millennium(&jde));
    }

    #[test]
    fn test_heliocentric_longitude() {
        let jme = 0.01300074354513669;
        // pvlib: 100.75286502047948
        assert_eq!(100.75288554139583, spa::heliocentric_longitude(&jme));
        let jme = -0.01300074354513669;
        // pvlib 100.00464976366129
        assert_eq!(100.00462189209429, spa::heliocentric_longitude(&jme));
    }

    #[test]
    fn test_heliocentric_latitude() {
        let jme = 0.01300074354513669;
        // pvlib 0.00010663876509755685
        assert_eq!(0.00010663836325029436, spa::heliocentric_latitude(&jme));
        let jme = -0.01300074354513669;
        // 0.00010214440296148753
        assert_eq!(0.00010214469246789543, spa::heliocentric_latitude(&jme));
    }

    #[test]
    fn test_heliocentric_radius_vector() {
        let jme = 0.01300074354513669;
        // pvlib 0.9832940565275712
        assert_eq!(0.983294088577116, spa::heliocentric_radius_vector(&jme));
        let jme = -0.01300074354513669;
        // pvlib 0.9833347325330166
        assert_eq!(0.9833347608615821, spa::heliocentric_radius_vector(&jme));
    }

    #[test]


67651,
          z: -0.04180014133453369,
        },
        Quaternion: {
          x: 0.058632392436265945,
          y: 0.9746342897415161,
          z: -0.11084616184234619,
          w: 0.18537381291389465,
        },
      },
      {
        Id: "Head",
        Position: {
          x: 0.4806061387062073,
          y: 1.1811089515686035,
          z: -0.021883979439735413,
        },
        Quaternion: {
          x: -0.02830200456082821,
          y: 0.9841147065162659,
          z: 0.06359200179576874,
          w: 0.16331957280635834,
        },
      },
      {
        Id: "LeftHand",
        Position: {
          x: 0.9350519776344299,
          y: 1.1820752620697021,
          z: 0.1243431568145752,
        },
        Quaternion: {
          x: -0.3188663721084595,
          y: -0.18538068234920502,
          z: -0.2166161984205246,
          w: 0.9039002656936646,
        },
      },
      {
        Id: "RightHand",
        Position: {
          x: 0.04623520374298096,
          y: 1.149280071258545,
          z: -0.21600806713104248,
        },
        Quaternion: {
          x: -0.3662855923175812,
          y: -0.1631971001625061,
          z: 0.03510322794318199,
          w: 0.9154066443443298,
        },
      },
      {
        Id: "LeftFoot",
        Position: {
          x: 0.582435667514801,
          y: -0.2872072458267212,
          z: 0.2216864824295044,
        },
        Quaternion: {
          x: -0.016300616785883904,
          y: 0.49577954411506653,
          z: -0.1502137929201126,
          w: 0.85520339012146,
        },
      },
      {
        Id: "RightFoot",
        Position: {
          x: 0.28303343057632446,
          y: -0.28004157543182373,
          z: 0.09651172161102295,
        },
        Quaternion: {
          x: 0.13387849926948547,
          y: -0.7683447003364563,
          z: 0.029002297669649124,
          w: 0.625205397605896,
        },
      },
    ],
  },
  {
    timestamp: 1655926816768,
    type: "Skeleton",
    Bones: [
      {
        Id: "Pelvis",
        Position: {
          x: 0.5034735798835754,
          y: 0.5375193357467651,
          z: -0.04180014133453369,
        },
        Quaternion: {
          x: 0.058632392436265945,
          y: 0.9746342897415161,
          z: -0.11084616184234619,
          w: 0.18537381291389465,
        },
      },
      {
        Id: "Head",
        Position: {
          x: 0.4806061387062073,
          y: 1.1811089515686035,
          z: -0.021883979439735413,
        },
        Quaternion: {
          x: -0.02830200456082821,


I },
            new ControlInputSetting("O", 24, Key.O) { KeyScanCode = ScanCodeShort.KEY_O },
            new ControlInputSetting("P", 25, Key.P) { KeyScanCode = ScanCodeShort.KEY_P },
            new ControlInputSetting("LEFTBRACKET", 26, Key.OemOpenBrackets, StringKey.LeftBracket) { KeyScanCode = ScanCodeShort.OEM_4 }, // assumes standard us keyboard layout
            new ControlInputSetting("RIGHTBRACKET", 27, Key.OemCloseBrackets, StringKey.RightBracket) { KeyScanCode = ScanCodeShort.OEM_6 },
            new ControlInputSetting("RETURN", 28, Key.Return, StringKey.Return) { KeyScanCode = ScanCodeShort.RETURN },
            new ControlInputSetting("LEFTCTRL", 29, Key.LeftCtrl, StringKey.LeftCtrl) { KeyScanCode = ScanCodeShort.LCONTROL } ,
            new ControlInputSetting("A", 30, Key.A) { KeyScanCode = ScanCodeShort.KEY_A },
            new ControlInputSetting("S", 31, Key.S) { KeyScanCode = ScanCodeShort.KEY_S },
            new ControlInputSetting("D", 32, Key.D) { KeyScanCode = ScanCodeShort.KEY_D },
            new ControlInputSetting("F", 33, Key.F) { KeyScanCode = ScanCodeShort.KEY_F },
            new ControlInputSetting("G", 34, Key.G) { KeyScanCode = ScanCodeShort.KEY_G },
            new ControlInputSetting("H", 35, Key.H) { KeyScanCode = ScanCodeShort.KEY_H },
            new ControlInputSetting("J", 36, Key.J) { KeyScanCode = ScanCodeShort.KEY_J },
            new ControlInputSetting("K", 37, Key.K) { KeyScanCode = ScanCodeShort.KEY_K },
            new ControlInputSetting("L", 38, Key.L) { KeyScanCode = ScanCodeShort.KEY_L },
            new ControlInputSetting("SEMICOLON", 39, Key.OemSemicolon, StringKey.Semicolon) { KeyScanCode = ScanCodeShort.OEM_1 },
            new ControlInputSetting("APOSTROPHE", 40, Key.OemQuotes, StringKey.Apostrophe) { KeyScanCode = ScanCodeShort.OEM_7 },
            new ControlInputSetting("BACKQUOTE", 41, Key.OemTilde, StringKey.Backquote) { KeyScanCode = ScanCodeShort.OEM_4 },
            new ControlInputSetting("LEFTSHIFT", 42, Key.LeftShift, StringKey.LeftShift) { KeyScanCode = ScanCodeShort.OEM_4 },
            new ControlInputSetting("BACKSLASH", 43, Key.OemBackslash, StringKey.Backslash) { KeyScanCode = ScanCodeShort.OEM_5 },
            new ControlInputSetting("BACKSLASH", 43, Key.Oem5, StringKey.Backslash) { KeyScanCode = ScanCodeShort.OEM_5 }, // Note: Oem5 is backslash on my en-us keyboard but I suspect this will be different for other keyboard layouts/manufacturers
            new ControlInputSetting("Z", 44, Key.Z) { KeyScanCode = ScanCodeShort.KEY_Z },
            new ControlInputSetting("X", 45, Key.X) { KeyScanCode = ScanCodeShort.KEY_X },
            new ControlInputSetting("C", 46, Key.C) { KeyScanCode = ScanCodeShort.KEY_C },
            new ControlInputSetting("V", 47, Key.V) { KeyScanCode = ScanCodeShort.KEY_V },
            new ControlInputSetting("B", 48, Key.B) { KeyScanCode = ScanCodeShort.KEY_B },
            new ControlInputSetting("N", 49, Key.N) { KeyScanCode = ScanCodeShort.KEY_N },
            new ControlInputSetting("M", 50, Key.M) { KeyScanCode = ScanCodeShort.KEY_M },
            new ControlInputSetting("COMMA", 51, Key.OemComma, StringKey.Comma) { KeyScanCode = ScanCodeShort.OEM_COMMA },
            new ControlInputSetting("PERIOD", 52, Key.OemPeriod, StringKey.


/*
  The oSIP library implements the Session Initiation Protocol (SIP -rfc3261-)
  Copyright (C) 2001-2015 Aymeric MOIZARD amoizard@antisip.com

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

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

#include <osipparser2/internal.h>

#include <osipparser2/osip_port.h>
#include <osipparser2/osip_message.h>
#include <osipparser2/osip_parser.h>

/* adds the contact header to message.              */
/* INPUT : const char *hvalue | value of header.    */
/* OUTPUT: osip_message_t *sip | structure to save results.  */
/* returns -1 on error. */
int
osip_message_set_contact (osip_message_t * sip, const char *hvalue)
{
  int i;
  osip_contact_t *contact;

  if (hvalue == NULL || hvalue[0] == '\0')
    return OSIP_SUCCESS;

  i = osip_contact_init (&contact);
  if (i != 0)
    return i;
  i = osip_contact_parse (contact, hvalue);
  if (i != 0) {
    osip_contact_free (contact);
    return i;
  }
  sip->message_property = 2;
  osip_list_add (&sip->contacts, contact, -1);
  return OSIP_SUCCESS;          /* ok */
}

/* parses a contact header.                                 */
/* INPUT : const char *string | pointer to a contact string.*/
/* OUTPUT: osip_contact_t *contact | structure to save results.  */
/* returns -1 on error. */
int
osip_contact_parse (osip_contact_t * contact, const char *hvalue)
{
  if (contact == NULL)
    return OSIP_BADPARAMETER;
  if (strncmp (hvalue, "*", 1) == 0) {
    contact->displayname = osip_strdup (hvalue);
    if (contact->displayname == NULL) {
      return OSIP_NOMEM;
    }
    return OSIP_SUCCESS;
  }
  return osip_from_parse ((osip_from_t *) contact, hvalue);
}

#ifndef MINISIZE
int
osip_contact_init (osip_contact_t ** contact)
{
  return osip_from_init ((osip_from_t **) contact);
}
#endif

#ifndef MINISIZE
/* returns the pos of contact header.                      */
/* INPUT : int pos | pos of contact header.                */
/* INPUT : osip_message_t *sip | sip message.                       */
/* OUTPUT: osip_contact_t *contact | structure to save results. */
/* returns -1 on error. */
int
osip_message_get_contact (const osip_message_t * sip, int pos, osip_contact_t ** dest)
{
  *dest = NULL;
  if (sip == NULL)
    return OSIP_BADPARAMETER;
  if (osip_list_size (&sip->contacts) <= pos)
    return OSIP_UNDEFINED_ERROR;        /* does not exist */
  *dest = (osip_contact_t *) osip_list_get (&sip->contacts, pos);
  return pos;
}
#endif

/* returns the contact header as a string.*/
/* INPUT : osip_contact_t *contact | contact.  */
/* returns null on error. */
int
osip_contact_to_str (const osip_contact_t * contact, char **dest)
{
  if (contact == NULL)
    return OSIP_BADPARAMETER;
  if (contact->displayname != NULL) {
    if (strncmp (contact->displayname, "*", 1) == 0) {
      *dest = osip_strdup ("*");
      if (*dest == NULL)
        return OSIP_NOMEM;
      return OSIP_SUCCESS;
    }
  }
  return osip_from_to_str ((osip_from_t *) contact, dest);
}

#ifndef MINISIZE
/* deallocates a osip_contact_t structure.  */
/* INPUT : osip_contact_t *| contact. */
void
osip_contact_free (osip_contact_t * contact)
{
  osip_from_free ((osip_from_t *) contact);
}

int
osip_contact_clone (const osip_contact_t * contact, osip_contact_t ** dest)
{
  return osip_from_clone ((osip_from_t *) contact, (osip_from_t **) dest);
}
#endif


countIdType(String transInAccountIdType) {
    this.transInAccountIdType = transInAccountIdType;
  }

  public BatchRoyaltyDetail transInAccountOpenId(String transInAccountOpenId) {

    this.transInAccountOpenId = transInAccountOpenId;
    return this;
  }

   /**
   * 分账转入方的OpenId，OpenId是用户在应用（AppId）下的唯一用户标识。
   * @return transInAccountOpenId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "095PJtAPYb2UkQ0mXk_X86Z_Pd7PtySKX-U3zUEwONcu3wc", value = "分账转入方的OpenId，OpenId是用户在应用（AppId）下的唯一用户标识。")

  public String getTransInAccountOpenId() {
    return transInAccountOpenId;
  }

  public void setTransInAccountOpenId(String transInAccountOpenId) {
    this.transInAccountOpenId = transInAccountOpenId;
  }

  public BatchRoyaltyDetail transInAccountType(String transInAccountType) {

    this.transInAccountType = transInAccountType;
    return this;
  }

   /**
   * 分账账户类型。 bankCard: 分账账户为银行卡； alipayBalance: 分账账户为支付宝余额户
   * @return transInAccountType
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "alipayBalance", value = "分账账户类型。 bankCard: 分账账户为银行卡； alipayBalance: 分账账户为支付宝余额户")

  public String getTransInAccountType() {
    return transInAccountType;
  }

  public void setTransInAccountType(String transInAccountType) {
    this.transInAccountType = transInAccountType;
  }

  public BatchRoyaltyDetail transInEntityId(String transInEntityId) {

    this.transInEntityId = transInEntityId;
    return this;
  }

   /**
   * 分账转出主体账号。    当分账转出主体类型为SecondMerchant，本参数为二级商户的SecondMerchantID    当分账转出类型为Store，本参数为StoreID
   * @return transInEntityId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "2088000069652893", value = "分账转出主体账号。    当分账转出主体类型为SecondMerchant，本参数为二级商户的SecondMerchantID    当分账转出类型为Store，本参数为StoreID")

  public String getTransInEntityId() {
    return transInEntityId;
  }

  public void setTransInEntityId(String transInEntityId) {
    this.transInEntityId = transInEntityId;
  }

  public BatchRoyaltyDetail transInEntityType(String transInEntityType) {

    this.transInEntityType = transInEntityType;
    return this;
  }

   /**
   * 分账转入主体类型。 SecondMerchant：分账转入主体为二级商户    Store: 结算门店
   * @


= [hello, help], };
			var keyHandler = new DefaultPromptKeyHandler();
			var autoComplete = new DefaultPromptAutoCompleter() { Root = root };
			var theme = new AnsiConsolePromptTheme() { MaxRows = 5, Prompt = "> " };

			var state = await Run(
				keyHandler,
				autoComplete,
				theme,
				PromptState.CreateEmpty(root, theme),
				[
					(Keyboard.h,     Expr(theme, root).Add('h').Tokens("incomplete:h").Candidates(["hello", "help"], commonPrefix: "hel")),
					(Keyboard.e,     Expr(theme, root).Add('e').Tokens("incomplete:he").Candidates(["hello", "help"], commonPrefix: "hel")),
					(Keyboard.l,     Expr(theme, root).Add('l').Tokens("incomplete:hel").Candidates(["hello", "help"], commonPrefix: "hel")),
					(Keyboard.l,     Expr(theme, root).Add('l').Tokens("incomplete:hell").Candidates(["hello"], commonPrefix: "hello")),
					(Keyboard.o,     Expr(theme, root).Add('o').Tokens("command:hello").Candidates(["hello"], exactMatch: "hello")),
					(Keyboard.Space, Expr(theme, hello).Next().Tokens("command:hello", "").Candidates(["world", "there"])),
					(Keyboard.w,     Expr(theme, hello).Add('w').Tokens("command:hello", "incomplete:w").Candidates(["world"], commonPrefix: "world")),
					(Keyboard.o,     Expr(theme, hello).Add('o').Tokens("command:hello", "incomplete:wo").Candidates(["world"], commonPrefix: "world")),
					(Keyboard.r,     Expr(theme, hello).Add('r').Tokens("command:hello", "incomplete:wor").Candidates(["world"], commonPrefix: "world")),
					(Keyboard.l,     Expr(theme, hello).Add('l').Tokens("command:hello", "incomplete:worl").Candidates(["world"], commonPrefix: "world")),
					(Keyboard.d,     Expr(theme, hello).Add('d').Tokens("command:hello", "argument:world").Candidates(["world"], exactMatch: "world")),
					(Keyboard.Enter, Expr(theme, hello).Done().Tokens("command:hello", "argument:world")),
				]
			);

			// create the query command that should contain the parsed FqlQuery
			Log($"Command: {state.Command.GetType()?.GetFriendlyName()}");
			Assert.That(state.Command, Is.SameAs(hello));
			Assert.That(state.CommandBuilder, Is.InstanceOf<FakeHello.Builder>());
			var result = state.CommandBuilder.Build(state);
			Assert.That(result, Is.InstanceOf<FakeHello.Command>());

			// verify the argument
			var cmd = (FakeHello.Command) result;
			Assert.That(cmd.Argument, Is.EqualTo("world"));
		}

		[Test]
		public async Task Test_Can_Type_Hello_Command_With_Typos_And_Backspaces()
		{
			// Fully type the "hello world" command, but simulating some typos + backspaces

			var hello = new FakeHello();
			var help = new FakeHelp();
			var root = new RootPromptCommand() { Commands = [hello, help], };
			var keyHandler = new DefaultPromptKeyHandler();
			var autoComplete = new DefaultPromptAutoCompleter() { Root = root };
			var theme = new AnsiConsolePromptTheme() { MaxRows = 5, Prompt = "> " };

			var state = await Run(
				keyHandler,
				autoComplete,
				theme,
				PromptState.CreateEmpty(root, theme),
				[
					(Keyboard.h,         Expr(theme, root).Add('h').Tokens("incomplete:h").Candidates(["hello", "help"], commonPrefix: "hel")),
					(Keyboard.e,         Expr(th


"]
pub struct APB2FZR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Debug MCU APB2 freeze register"]
pub mod apb2fzr;
<filename>mqttrust/src/lib.rs
#![cfg_attr(not(test), no_std)]

pub mod encoding;

pub use encoding::v4::{
    subscribe::SubscribeTopic, utils::QoS, Packet, Publish, Subscribe, Unsubscribe,
};

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum MqttError {
    Full,
    Borrow,
    Overflow,
}

pub trait Mqtt {
    fn send(&self, packet: Packet<'_>) -> Result<(), MqttError>;

    fn client_id(&self) -> &str;

    fn publish(&self, topic_name: &str, payload: &[u8], qos: QoS) -> Result<(), MqttError> {
        let packet = Packet::Publish(Publish {
            dup: false,
            qos,
            pid: None,
            retain: false,
            topic_name,
            payload,
        });

        self.send(packet)
    }

    fn subscribe(&self, topics: &[SubscribeTopic<'_>]) -> Result<(), MqttError> {
        let packet = Packet::Subscribe(Subscribe::new(topics));
        self.send(packet)
    }

    fn unsubscribe(&self, topics: &[&str]) -> Result<(), MqttError> {
        let packet = Packet::Unsubscribe(Unsubscribe::new(topics));
        self.send(packet)
    }
}
use cpu::Cpu;
use cpu::addressing::*;
use cpu::instructions::*;
use cpu::instructions as instr;
use bus::Bus;
use cartridge::Cartridge;

// ADD 8-bit tests

#[test]
fn add8_no_flags() {
    let mut cpu = Cpu::new();
    let mut cartridge = Cartridge::from_vec(vec![0; 65536]);
    let mut bus = Bus::new(&mut cartridge);
    let inc = ImmediateAddressing(0xDE);

    cpu.regs.set_f(0b1111 << 4);
    cpu.regs.set_a(0x11);

    add_8(&mut cpu, &mut bus, &inc);

    assert_eq!(cpu.regs.a(), 0xEF);
    assert_eq!(cpu.regs.f(), 0);
}

#[test]
fn add8_carry() {
    let mut cpu = Cpu::new();
    let mut cartridge = Cartridge::from_vec(vec![0; 65536]);
    let mut bus = Bus::new(&mut cartridge);
    let inc = ImmediateAddressing(0xF0);

    cpu.regs.set_f(0b1111 << 4);
    cpu.regs.set_a(0xF0);

    add_8(&mut cpu, &mut bus, &inc);

    assert_eq!(cpu.regs.a(), 0xE0);
    assert_eq!(cpu.regs.f(), 0b0001 << 4);
}

#[test]
fn add8_half_carry() {
    let mut cpu = Cpu::new();
    let mut cartridge = Cartridge::from_vec(vec![0; 65536]);
    let mut bus = Bus::new(&mut cartridge);
    let inc = ImmediateAddressing(0x0F);

    cpu.regs.set_f(0b1111 << 4);
    cpu.regs.set_a(0x0F);

    add_8(&mut cpu, &mut bus, &inc);

    assert_eq!(cpu.regs.a(), 0x1E);
    assert_eq!(cpu.regs.f(), 0b0010 << 4);
}

#[test]
fn add8_zero() {
    let mut cpu = Cpu::new();
    let mut cartridge = Cartridge


1 // 返回的页面数
}
```

## 五、wx.reLaunch

关闭所有页面,打开到应用内的某个页面。

**特点**:页面栈清空只留下新的页面。

**参数**:

```js
{
  url: 'test' // 需要跳转的页面路径
}
```

## 总结

根据需要选择合适的页面跳转方式,控制页面栈数量,合理管理小程序内存占用。# JavaScript事件流：深入理解事件处理和传播机制

## 引言

JavaScript中的事件流是一种机制，用于描述和处理事件在DOM树中的传播过程。了解事件流的属性和工作原理对于编写高效的事件处理代码和实现复杂的交互功能至关重要。本文将详细介绍JavaScript事件流的发展流程、属性以及应用场景，并提供一些代码示例和引用资料，帮助读者深入理解并应用这一重要的前端技术。

## 1. 事件流的发展流程

事件流在前端的发展过程中经历了一些变化和演进。下面简要介绍了事件流的发展历程：

### 1.1 传统的DOM0级事件

在早期的JavaScript中，事件处理是通过在DOM元素上直接定义事件处理属性来实现的，称为DOM0级事件。例如，可以通过为按钮元素的`onclick`属性赋值一个函数来定义点击事件的处理程序。

```javascript
const button = document.getElementById('myButton');
button.onclick = function() {
  console.log('按钮被点击');
};
```

这种方式简单直接，但是有一个缺点是无法同时为一个元素的同一个事件类型添加多个处理程序。

### 1.2 DOM2级事件和addEventListener方法

随着DOM2级事件的引入，新增了`addEventListener`方法，提供了更强大和灵活的事件处理能力。`addEventListener`方法允许为一个元素的同一个事件类型添加多个处理程序，并且可以控制事件的捕获阶段。

```javascript
const button = document.getElementById('myButton');
button.addEventListener('click', function() {
  console.log('按钮被点击');
});
```

通过`addEventListener`方法，可以在一个元素上同时添加多个处理程序，而且可以使用`removeEventListener`方法移除指定的处理程序。

### 1.3 W3C DOM3级事件

W3C DOM3级事件进一步扩展了事件的类型和属性，引入了更多的事件类型和特性，以满足不断增长的前端开发需求。DOM3级事件规范定义了新的事件类型，如滚动事件、触摸事件、过渡事件等，以及一些新的事件属性和方法，提供更丰富的事件处理能力。

```javascript
const element = document.getElementById('myElement');
element.addEventListener('scroll', function(event) {
  console.log('元素滚动事件');
});
```

DOM3级事件的引入丰富了事


,0xd7,0x00,0x00]

v_ashr_i64 v[5:6], v[1:2], tba_lo
// CHECK: [0x05,0x00,0xc6,0xd2,0x01,0xd9,0x00,0x00]

v_ashr_i64 v[5:6], v[1:2], tba_hi
// CHECK: [0x05,0x00,0xc6,0xd2,0x01,0xdb,0x00,0x00]

v_ashr_i64 v[5:6], v[1:2], tma_lo
// CHECK: [0x05,0x00,0xc6,0xd2,0x01,0xdd,0x00,0x00]

v_ashr_i64 v[5:6], v[1:2], tma_hi
// CHECK: [0x05,0x00,0xc6,0xd2,0x01,0xdf,0x00,0x00]

v_ashr_i64 v[5:6], v[1:2], ttmp11
// CHECK: [0x05,0x00,0xc6,0xd2,0x01,0xf7,0x00,0x00]

v_ashr_i64 v[5:6], v[1:2], m0
// CHECK: [0x05,0x00,0xc6,0xd2,0x01,0xf9,0x00,0x00]

v_ashr_i64 v[5:6], v[1:2], exec_lo
// CHECK: [0x05,0x00,0xc6,0xd2,0x01,0xfd,0x00,0x00]

v_ashr_i64 v[5:6], v[1:2], exec_hi
// CHECK: [0x05,0x00,0xc6,0xd2,0x01,0xff,0x00,0x00]

v_ashr_i64 v[5:6], v[1:2], 0
// CHECK: [0x05,0x00,0xc6,0xd2,0x01,0x01,0x01,0x00]

v_ashr_i64 v[5:6], v[1:2], -1
// CHECK: [0x05,0x00,0xc6,0xd2,0x01,0x83,0x01,0x00]

v_ashr_i64 v[5:6], v[1:2], 0.5
// CHECK: [0x05,0x00,0xc6,0xd2,0x01,0xe1,0x01,0x00]

v_ashr_i64 v[5:6], v[1:2], -4.0
// CHECK: [0x05,0x00,0xc6,0xd2,0x01,0xef,0x01,0x00]

v_ashr_i64 v[5:6], v[1:2], src_vccz
// CHECK: [0x05,0x00,0xc6,0xd2,0x01,0xf7,0x01,0x00]

v_ashr_i64 v[5:6], v[1:2], src_execz
// CHECK: [0x05,0x00,0xc6,0xd2,0x01,0xf9,0x01,0x00]

v_ashr_i64 v[5:6], v[1:2], src_scc
// CHECK: [0x05,0x00,0xc6,0xd2,0x01,0xfb,0x01,0x00]

v_add_f64 v[5:6], v[1:2], v[2:3]
// CHECK: [0x05,0x00,0xc8,0xd2,0x01,0x05,0x02,0x00]


ucts~Land~Motorcycles~Sales", "colType": "NUMERIC"},
        {"colIndex": 9, "colName": "Products~Land~Motorcycles~ExpectedSales", "colLabel": "Products~Land~Motorcycles~Expected Sales", "colType": "NUMERIC"},
        {"colIndex": 10, "colName": "Products~Land~Motorcycles~PreviousSales", "colLabel": "Products~Land~Motorcycles~Previous Sales", "colType": "NUMERIC"},

        /* Products ~ Air ~ Boeing */
        {"colIndex": 11, "colName": "Products~Air~Boeing~Quantity", "colLabel": "Products~Planes~Boeing~Quantity", "colType": "NUMERIC"},
        {"colIndex": 12, "colName": "Products~Air~Boeing~Sales", "colLabel": "Products~Planes~Boeing~Sales", "colType": "NUMERIC"},
        {"colIndex": 13, "colName": "Products~Air~Boeing~ExpectedSales", "colLabel": "Products~Land~Motorcycles~Expected Sales", "colType": "NUMERIC"},
        {"colIndex": 14, "colName": "Products~Air~Boeing~PreviousSales", "colLabel": "Products~Land~Motorcycles~Previous Sales", "colType": "NUMERIC"}
      ],

      /*  Qty   Sales      ESales  PSales  |Qty  Sales      ESales  PSales |Qty  Sales      ESales  PSales */
      "resultset": [
        ["APAC", "Australia",   null,  null,      null,  null,   876,  89968.76,  100000, 60000, 813,  74853.87,  null,   null],
        ["APAC", "Hong Kong",   1818, 193085.54, 200000, 150000, 35,   3845.8,    50000,  0,     462,  39649.31,  20000,  null],
        ["APAC", "Japan",       314,  472710.49, 300000, 123400, 309,  26536.41,  30000,  null,  547,  49176.96,  1000,   500],
        ["APAC", "New Zealand", 1526, 167198.22, null,   100000, 976,  99849.46,  10000,  2000,  517,  46572.33,  300000, 200000],
        ["APAC", "Philippines", 478,  53112.09,  25234,  40000,  241,  18061.68,  4567,   77889, 215,  20906.87,  NaN,    25000],
        ["APAC", "Singapore",   1043, 132890.44, 200000, 500000, 44,   4175.6,    null,   null,  null, 50000.23,  null,   23023],
        ["EMEA", "Spain",       937,  101459.47, 50000,  10000,  197,  26047.66,  20000,  10000, 200,  17860.44,  10000,  12345],
        ["EMEA", "Ireland",     202,  31688.82,  200150, 100000, 58,   4953.20,   1000,   2000,  115,  11784.36,  12000,  10000],
        ["EMEA", "Italy",       982,  133182.62, 150000, 20000,  111,  11609.38,  2000,   null,  1276, 113717.56, 100000, 80000],
        ["EMEA", "Belgium",     147,  20136.96,  20000,  10000,  null,  null,     1000,   7500,  41,   5624.79,   1000,   12345],
        ["EMEA", "Denmark",     1244, 157182.48, 100000, 70000,  null,  null,     null,   50000, 70,   7586.45,   3000,   5000],
        ["EMEA", "Finland",     1284, 153552.24, 200000, 100000, 447,  47866.72,  null,   null,  421,  34375.13,  10000,  10000],
        ["EMEA", "France",      3540, 388951.20, 300000, 200000, 2404, 226390.30, 100500, 70452, 1136, 108155.51, 250000, 100000],
        ["EMEA", "Germany",     1281, 148314.99, 123112, null,   121


ht: 5px;
  margin-top: -1px;
  width: 26px;
  height: 26px;
  fill: #399aec;
}
@media screen and (max-width: 500px) {
  .QQy4BCjcpjCfAvTKAqBq3 > svg {
    display: none;
  }
}
.rHz7G5xZ3qXUYUcBW2bzX {
  display: flex;
  white-space: nowrap;
  margin: 5px;
}
.rHz7G5xZ3qXUYUcBW2bzX .SVGIcon_ChatBubble {
  width: 21px;
  height: 21px;
  fill: rgba(255, 255, 255, 0.66);
  display: none;
}
.rHz7G5xZ3qXUYUcBW2bzX ._3P2XeK0HGdzGWS3fRQ4_vX {
  line-height: 22px;
}
@media screen and (max-width: 500px) {
  .rHz7G5xZ3qXUYUcBW2bzX ._3P2XeK0HGdzGWS3fRQ4_vX {
    display: none;
  }
  .rHz7G5xZ3qXUYUcBW2bzX .SVGIcon_ChatBubble {
    display: block;
  }
}
._3ZqxxB_poSsEYBW1s4t1OY,
._1PTQ2mq0eTaG8ifW8juu81 {
  width: 32px;
  height: 32px;
  margin-bottom: -4px;
  bottom: 3px;
  left: 9px;
  position: absolute;
  transform: scaleY(-1);
}
@media screen and (max-width: 500px) {
  ._3ZqxxB_poSsEYBW1s4t1OY,
  ._1PTQ2mq0eTaG8ifW8juu81 {
    margin-bottom: -2px;
  }
}
._3ZqxxB_poSsEYBW1s4t1OY {
  fill: rgba(255, 255, 255, 0.66);
}
._1PTQ2mq0eTaG8ifW8juu81 {
  fill: #9cccf5;
}
._2akzufsslA5YAnC95zYx0K,
._34YgMAbrVXVMMfXvsZAU9_ {
  width: 32px;
  height: 32px;
  margin-right: 5px;
  margin-bottom: -4px;
  margin-top: -6px;
  margin-left: -20px;
}
@media screen and (max-width: 500px) {
  ._2akzufsslA5YAnC95zYx0K,
  ._34YgMAbrVXVMMfXvsZAU9_ {
    margin-top: initial;
    margin-left: initial;
    margin-bottom: -1px;
    bottom: 3px;
    left: 9px;
    position: absolute;
  }
}
._2akzufsslA5YAnC95zYx0K {
  fill: rgba(255, 255, 255, 0.66);
}
._34YgMAbrVXVMMfXvsZAU9_ {
  fill: #9cccf5;
}
.Sf3urgalDvD2sZqNjEV9i {
  width: 36px;
  height: 36px;
  margin-right: 2px;
  margin-bottom: -4px;
  margin-top: -6px;
  margin-left: -5px;
  fill: #399aec;
}
@media screen and (max-width: 500px) {
  .Sf3urgalDvD2sZqNjEV9i {
    display: none;
  }
}
._2OXBSB7B1AuT3O2sUF46T9 {
  background-color: #399aec;
}
._3n6v2rFCMX3yWMfZrlCn6


SizeButton : collapsePivotSizeButton, true);
	};

	WorksheetView.prototype.getButtonSize = function (row, col, isDataValidation) {
		var colWidth = this._getColumnWidth(col);
		var rowHeight = this._getRowHeight(row);
		var _notChangeScaleWidth = isDataValidation && col !== AscCommon.gc_nMaxCol0;
		var width, height, index;
		width = height = this._getFilterButtonSize();

		if (colWidth < width && rowHeight < height && !_notChangeScaleWidth) {
			if (rowHeight < colWidth) {
				index = rowHeight / height;
				width = width * index;
				height = rowHeight;
			} else {
				index = colWidth / width;
				width = colWidth;
				height = height * index;
			}
		} else if (colWidth < width && !_notChangeScaleWidth) {
			index = colWidth / width;
			width = colWidth;
			height = height * index;
		} else if (rowHeight < height) {
			index = rowHeight / height;
			width = width * index;
			height = rowHeight;
		}

		return {w: width, h: height};
	};

	WorksheetView.prototype.af_drawButtons = function (updatedRange, offsetX, offsetY) {
		var i, ws = this.model;
		var t = this;

		if (ws.workbook.bUndoChanges || ws.workbook.bRedoChanges) {
			return false;
		}

		offsetX -= this.getRightToLeftOffset();

		var drawCurrentFilterButtons = function (filter) {
			var autoFilter = filter.isAutoFilter() ? filter : filter.AutoFilter;

			if (!filter.Ref) {
				return;
			}

			var range = new Asc.Range(filter.Ref.c1, filter.Ref.r1, filter.Ref.c2, filter.Ref.r1);

			if (range.isIntersect(updatedRange)) {
				var row = range.r1;

				//TODO sheet view
				var sortConditions = filter.isApplySortConditions() ? filter.SortState.SortConditions : null;
				for (var col = range.c1; col <= range.c2; col++) {
					if (col >= updatedRange.c1 && col <= updatedRange.c2) {
						var isSetFilter = false;
						var isShowButton = true;
						var isSortState = null;//true - ascending, false - descending

						var i;
						var colId = filter.isAutoFilter() ? t.model.autoFilters._getTrueColId(autoFilter, col - range.c1, true) : col - range.c1;

						var filterColumns = t.model.getNamedSheetViewFilterColumns(filter.DisplayName);
						var viewSheetMode = false;
						if (!filterColumns) {
							filterColumns = autoFilter.FilterColumns;
						} else {
							viewSheetMode = true;
						}

						if (filterColumns && filterColumns.length) {
							var filterColumn = null, filterColumnWithMerge = null;

							for (i = 0; i < filterColumns.length; i++) {
								var _filterColumn = viewSheetMode ? filterColumns[i].filter : filterColumns[i];
								if (_filterColumn.ColId === col - range.c1) {
									filterColumn = _filterColumn;
								}

								if (colId === col - range.c1 && filterColumn !== null) {
									filterColumnWithMerge = filterColumn;
									break;
								} else if (_filterColumn.ColId === colId) {
									filterColumnWithMerge = _filterColumn;
								}
							}

							if (filterColumnWithMerge && filterColumnWithMerge.isApplyAutoFilter()) {
								isSetFilter = true;
							}

							if (filterColumn && filterColumn.ShowButton === false) {
								isShowButton = false;


5)
- **1 Peter 1:17** → **Job 34:19** [[Job ch: 34.md]] (votes: 5)
- **1 Peter 1:17** → **Colossians 3:25** [[Colossians ch: 3.md]] (votes: 4)
- **1 Peter 1:17** → **1 Peter 2:11** [[1 Peter ch: 2.md]] (votes: 4)
- **1 Peter 1:17** → **2 Chronicles 19:7** [[2 Chronicles ch: 19.md]] (votes: 14)
- **1 Peter 1:17** → **Ephesians 3:14** [[Ephesians ch: 3.md]] (votes: 4)
- **1 Peter 1:17** → **Romans 11:20** [[Romans ch: 11.md]] (votes: 5)
- **1 Peter 1:17** → **1 Chronicles 29:15** [[1 Chronicles ch: 29.md]] (votes: 2)
- **1 Peter 1:17** → **Hebrews 12:28** [[Hebrews ch: 12.md]] (votes: 6)
- **1 Peter 1:17** → **Zephaniah 3:9** [[Zephaniah ch: 3.md]] (votes: 3)
- **1 Peter 1:17** → **Proverbs 28:14** [[Proverbs ch: 28.md]] (votes: 4)
- **1 Peter 1:17** → **2 Corinthians 7:11** [[2 Corinthians ch: 7.md]] (votes: 1)
- **1 Peter 1:18** → **1 Peter 1:7** [[1 Peter ch: 1.md]] (votes: 8)
- **1 Peter 1:18** → **Psalms 62:10** [[Psalms ch: 62.md]] (votes: 5)
- **1 Peter 1:18** → **1 Corinthians 3:20** [[1 Corinthians ch: 3.md]] (votes: 3)
- **1 Peter 1:18** → **Jeremiah 16:19** [[Jeremiah ch: 16.md]] (votes: 4)
- **1 Peter 1:18** → **1 Corinthians 6:20** [[1 Corinthians ch: 6.md]] (votes: 35)
- **1 Peter 1:18** → **Ezekiel 20:18** [[Ezekiel ch: 20.md]] (votes: 4)
- **1 Peter 1:18** → **Jeremiah 4:11** [[Jeremiah ch: 4.md]] (votes: 4)
- **1 Peter 1:18** → **Romans 1:21** [[Romans ch: 1.md]] (votes: 11)
- **1 Peter 1:18** → **Jeremiah 9:14** [[Jeremiah ch: 9.md]] (votes: 4)
- **1 Peter 1:18** → **Galatians 1:4** [[Galatians ch: 1.md]] (votes: 17)
- **1 Peter 1:18** → **Amos 2:4** [[Amos ch: 2.md]] (votes: 5)
- **1 Peter 1:18** → **1 Peter 4:3** [[1 Peter ch: 4.md]] (votes: 8)
- **1 Peter 1:18** → **Psalms 39:6** [[Psalms ch: 39.md]] (votes: 5)
- **1 Peter 1:18** → **Ephesians 4:17** [[Ephesians ch: 4.md]] (votes: 15)
- **1 Peter 1:18** → **1 Corinthians 7:23** [[1 Corinthians ch: 7.md]] (votes: 23)
- **1 Peter 1:18** → **Jeremiah 44:17** [[Jeremiah ch: 44.md]] (votes: 4)
- **1 Peter 1:18** → **Titus 2:14** [[Titus ch: 2.md]] (votes: 22)
- **1 Peter 1:19** → **Colossians 1:14** [[Colossians ch: 1.md]] (votes: 13)
- **1 Peter 1:19** → **John 1:36** [[John ch: 1.md]] (votes: 15)
- **1 Peter 1


if(IsMySQL41(m_tunnel, m_mysql))
			{
                charsetstr.SetAs(prowdata->pszData[CHARSET]);
                collationstr.SetAs(prowdata->pszData[COLLATION]);

                collationlen = strlen(prowdata->pszData[CHARSET]);
                if(collationlen > 1 && charsetstr.Compare(STR_DEFAULT) != 0)
                    modifycolumns.AddSprintf(" character set %s", charsetstr.GetString());

				collationlen = strlen(prowdata->pszData[COLLATION]);
                if(collationlen > 1 && collationstr.Compare(STR_DEFAULT) != 0)
                    modifycolumns.AddSprintf(" collate %s", collationstr.GetString());

                modifycolumns.AddSprintf("%s%s%s%s%s%s",
								((stricmp(prowdata->pszData[UNSIGNED + addcol], GV_TRUE)==0)?(" UNSIGNED"):("")),
								((stricmp(prowdata->pszData[ZEROFILL + addcol], GV_TRUE)==0)?(" ZEROFILL"):("")),
								(((stricmp(prowdata->pszData[BINARY], GV_TRUE)==0) && (IsMySQL41(m_tunnel, m_mysql) == wyFalse))?("BINARY "):("")),
								(((strlen(prowdata->pszData[DEFVALUE]))>0)?(defvalue.GetString()):("")),
								((stricmp(prowdata->pszData[NOTNULL + addcol], GV_TRUE)==0)?(" NOT NULL"):(" NULL ")),
								((stricmp(prowdata->pszData[AUTOINCR + addcol], GV_TRUE)==0)?(" AUTO_INCREMENT"):(""))
								);

				if(strlen(prowdata->pszData[COMMENT])> 0)
				{
					wyChar *tbuff = (wyChar*)calloc((strlen(prowdata->pszData[COMMENT])*2 + 1), sizeof(wyChar));

					m_tunnel->mysql_real_escape_string(*m_mysql, tbuff, prowdata->pszData[COMMENT], strlen(prowdata->pszData[COMMENT]));
					modifycolumns.AddSprintf(" comment '%s'", tbuff);
					free(tbuff);
				}

				modifycolumns.Add(", ");

			}

            else
            {
				modifycolumns.AddSprintf("%s%s%s%s%s%s",
								((stricmp(prowdata->pszData[UNSIGNED + addcol], GV_TRUE)==0)?(" UNSIGNED"):("")),
								((stricmp(prowdata->pszData[ZEROFILL + addcol], GV_TRUE)==0)?(" ZEROFILL"):("")),
								(((stricmp(prowdata->pszData[BINARY], GV_TRUE)==0) && (IsMySQL41(m_tunnel, m_mysql) == wyFalse))?("BINARY "):("")),
								(((strlen(prowdata->pszData[DEFVALUE]))>0)?(defvalue.GetString()):("")),
								((stricmp(prowdata->pszData[NOTNULL + addcol], GV_TRUE)==0)?(" NOT NULL"):(" NULL")),
								((stricmp(prowdata->pszData[AUTOINCR + addcol], GV_TRUE)==0)?(" AUTO_INCREMENT"):(""))
								);

				modifycolumns.Add(", ");
            }

		}
		CustomGrid_FreeRowData(GetGrid(), prowdata);
	}

	if( modifycolumns.GetCharAt(modifycolumns.GetLength()-2) == ',')
        modifycolumns.Strip(2);

    if(modifycolumns.GetLength() == 0)
		return wyFalse;

	return wyTrue;
}

// create the drop column query.
wyInt32
TableMakerAlterTable::Dro


//
//      Copyright (C) DataStax Inc.
//
//   Licensed under the Apache License, Version 2.0 (the "License");
//   you may not use this file except in compliance with the License.
//   You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
//   Unless required by applicable law or agreed to in writing, software
//   distributed under the License is distributed on an "AS IS" BASIS,
//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//   See the License for the specific language governing permissions and
//   limitations under the License.
//

using System;
using System.Collections.Generic;
using System.Net;
using System.Threading.Tasks;

using Cassandra.Connections;

namespace Cassandra.DataStax.Cloud
{
    internal class CloudSniOptionsProvider : ISniOptionsProvider, IEquatable<CloudSniOptionsProvider>
    {
        private readonly SecureConnectionBundle _bundle;
        private readonly SSLOptions _sslOptions;
        private readonly SocketOptions _socketOptions;
        private readonly ICloudMetadataService _cloudMetadataService;
        private readonly SingleThreadedResolver _cloudMetadataResolver;

        private volatile CloudMetadataResult _cloudMetadataResult;
        private volatile SniOptions _sniOptions;

        public CloudSniOptionsProvider(
            SocketOptions socketOptions,
            SSLOptions sslOptions,
            SecureConnectionBundle bundle,
            ICloudMetadataService cloudMetadataService)
        {
            _socketOptions = socketOptions ?? throw new ArgumentNullException(nameof(socketOptions));
            _sslOptions = sslOptions ?? throw new ArgumentNullException(nameof(sslOptions));
            _bundle = bundle ?? throw new ArgumentNullException(nameof(bundle));
            _cloudMetadataService = cloudMetadataService ?? throw new ArgumentNullException(nameof(cloudMetadataService));

            _cloudMetadataResolver = new SingleThreadedResolver();
        }

        private async Task UnsafeRefreshSniOptions()
        {
            var cloudMetadata = await _cloudMetadataService.GetClusterMetadataAsync(
                $"https://{_bundle.Config.Host}:{_bundle.Config.Port}/metadata",
                _socketOptions,
                _sslOptions).ConfigureAwait(false);

            var proxyAddress = cloudMetadata.ContactInfo.SniProxyAddress;
            var separatorIndex = proxyAddress.IndexOf(':');

            if (separatorIndex == -1)
            {
                throw new Invalid


    }
    if let Some(var_343) = &input.stage_variable_overrides {
        let mut object_344 = object.key("stageVariableOverrides").start_object();
        for (key_345, value_346) in var_343 {
            {
                object_344.key(key_345).string(value_346);
            }
        }
        object_344.finish();
    }
    if input.use_stage_cache {
        object.key("useStageCache").boolean(input.use_stage_cache);
    }
}

pub fn serialize_structure_api_stage(
    object: &mut smithy_json::serialize::JsonObjectWriter,
    input: &crate::model::ApiStage,
) {
    if let Some(var_347) = &input.api_id {
        object.key("apiId").string(var_347);
    }
    if let Some(var_348) = &input.stage {
        object.key("stage").string(var_348);
    }
    if let Some(var_349) = &input.throttle {
        let mut object_350 = object.key("throttle").start_object();
        for (key_351, value_352) in var_349 {
            {
                let mut object_353 = object_350.key(key_351).start_object();
                crate::json_ser::serialize_structure_throttle_settings(&mut object_353, value_352);
                object_353.finish();
            }
        }
        object_350.finish();
    }
}

pub fn serialize_structure_quota_settings(
    object: &mut smithy_json::serialize::JsonObjectWriter,
    input: &crate::model::QuotaSettings,
) {
    if input.limit != 0 {
        object.key("limit").number(
            #[allow(clippy::useless_conversion)]
            smithy_types::Number::NegInt((input.limit).into()),
        );
    }
    if input.offset != 0 {
        object.key("offset").number(
            #[allow(clippy::useless_conversion)]
            smithy_types::Number::NegInt((input.offset).into()),
        );
    }
    if let Some(var_354) = &input.period {
        object.key("period").string(var_354.as_str());
    }
}

pub fn serialize_structure_throttle_settings(
    object: &mut smithy_json::serialize::JsonObjectWriter,
    input: &crate::model::ThrottleSettings,
) {
    if input.burst_limit != 0 {
        object.key("burstLimit").number(
            #[allow(clippy::useless_conversion)]
            smithy_types::Number::NegInt((input.burst_limit).into()),
        );
    }
    if input.rate_limit != 0.0 {
        object.key("rateLimit").number(
            #[allow(clippy::useless_conversion)]
            smithy_types::Number::Float((input.rate_limit).into()),
        );
    }
}

pub fn serialize_structure_tls_config(
    object: &mut smithy_json::serialize::JsonObjectWriter,
    input: &crate::model::TlsConfig,
) {
    if input.insecure_skip_verification {
        object
            .key("insecureSkipVerification")
            .boolean(input.insecure_skip_verification);
    }
}

pub fn serialize_structure_patch_operation(
    object: &mut smithy_json::serialize::JsonObjectWriter,
    input: &crate::model::PatchOperation,
) {
    if let Some(var_355) = &input.op {
        obje


from django.shortcuts import render
from .models import User
# Create your views here.

def abanoub(request):
    return render(request, 'abanoub/abanoub.html')

def abanoubs(request):
    return render(request, 'abanoub/abanoubs.html',{'user':User.objects.all()})


-plugin",
			},
			expectedSourceType: "*workspace.httpSource",
			expectedURL:        "https://example.com/test-plugin",
		},
		{
			name: "Use PluginDownloadURL (GitHub)",
			spec: PluginSpec{
				Name:              "test-plugin",
				Kind:              apitype.PluginKind("resource"),
				PluginDownloadURL: "github://api.github.com/owner/repo",
			},
			expectedSourceType: "*workspace.githubSource",
			expectedURL:        "github://api.github.com/owner/repo",
		},
		{
			name: "Use PluginDownloadURL (GitLab)",
			spec: PluginSpec{
				Name:              "test-plugin",
				Kind:              apitype.PluginKind("resource"),
				PluginDownloadURL: "gitlab://mygitlab.example.com/proj1",
			},
			expectedSourceType: "*workspace.gitlabSource",
			expectedURL:        "gitlab://mygitlab.example.com/proj1",
		},
		{
			name: "Use PluginDownloadURL (Git)",
			spec: PluginSpec{
				Name:              "test-plugin",
				Kind:              apitype.PluginKind("resource"),
				PluginDownloadURL: "git://github.com/test/test",
			},
			expectedSourceType: "*workspace.gitSource",
			expectedURL:        "https://github.com/test/test.git",
		},
		{
			name: "Use fallback source",
			spec: PluginSpec{
				Name: "test-plugin",
				Kind: apitype.PluginKind("resource"),
			},
			expectedSourceType: "*workspace.fallbackSource",
			expectedURL:        "github://api.github.com/pulumi/pulumi-test-plugin",
		},
		{
			name: "Apply override (HTTP)",
			spec: PluginSpec{
				Name: "test-plugin",
				Kind: apitype.PluginKind("resource"),
			},
			overrides: pluginDownloadOverrideArray{
				{reg: regexp.MustCompile(`test-plugin`), url: "https://example.com/test-plugin"},
			},
			expectedSourceType: "*workspace.httpSource",
			expectedURL:        "https://example.com/test-plugin",
		},
		{
			name: "Apply override (GitHub)",
			spec: PluginSpec{
				Name: "test-plugin",
				Kind: apitype.PluginKind("resource"),
			},
			overrides: pluginDownloadOverrideArray{
				{reg: regexp.MustCompile(`test-plugin`), url: "github://api.github.com/test-org/test-plugin"},
			},
			expectedSourceType: "*workspace.githubSource",
			expectedURL:        "github://api.github.com/test-org/test-plugin",
		},
		{
			name: "Apply checksums",
			spec: PluginSpec{
				Name:      "test-plugin",
				Kind:      apitype.PluginKind("resource"),
				Checksums: map[string][]byte{"checksum1": []byte("checksum2")},
			},
			expectedSourceType: "*workspace.checksumSource",
			expectedURL:        "github://api.github.com/pulumi/pulumi-test-plugin",
		},
		{
			name: "Invalid URL",
			spec: PluginSpec{
				Name:              "test-plugin",
				Kind:              apitype.PluginKind("resource"),
				PluginDownloadURL: "://invalid-url",
			},
			expectedErrMsg: "parse \"://invalid-url\": missing protocol scheme",
		},
		{
			name: "Unknown scheme",
			spec: PluginSpec{
				Name:              "test-plugin",
				Kind:              apitype.PluginKind("resource"),
				PluginDownloadURL: "unknown://example.com/plugin",
			},
			expectedErrMsg: "unknown plugin source scheme: unknown",
		},
	}

	for _, tt := range tests


B>,
    chain_id: u64,
) -> Tagged<ChainX, &FullNode>
where
    ChainA: ChainHandle,
    ChainB: ChainHandle,
    ChainX: ChainHandle,
{
    Tagged::new(match chain_id {
        1 => chains.node_a.value(),
        2 => chains.node_b.value(),
        _ => unreachable!(),
    })
}

pub fn get_wallet<'a, ChainX>(
    wallets: &'a Tagged<ChainX, &TestWallets>,
    user: u64,
) -> Tagged<ChainX, &'a Wallet> {
    match user {
        1 => wallets.user1(),
        2 => wallets.user2(),
        _ => unreachable!(),
    }
}

pub fn get_denom<'a, ChainX>(
    chain: &'a Tagged<ChainX, &FullNode>,
    denom: DenomId,
) -> Tagged<ChainX, &'a Denom> {
    match denom {
        1 => chain.denom(),
        2 => chain.denom(),
        _ => unreachable!(),
    }
}

pub fn wait_for_client() {
    let sleep_time = CLIENT_EXPIRY + Duration::from_secs(5);

    info!(
        "Sleeping for {} seconds to wait for IBC client to expire",
        sleep_time.as_secs()
    );

    sleep(sleep_time);
}

pub fn parse_itf_from_json(itf_path: &str) -> Vec<State> {
    let itf_json = std::fs::read_to_string(itf_path).expect("itf file does not exist. did you run `apalache check --inv=Invariant --run-dir=run main.tla` first?");

    let trace: InformalTrace<State> =
        serde_json::from_str(&itf_json).expect("deserialization error");

    trace.states
}

pub fn get_unreceived_packets_at_dst<ChainA: ChainHandle, ChainB: ChainHandle>(
    chain: &ChainA,
    channel: &ConnectedChannel<ChainA, ChainB>,
) -> Result<Vec<Sequence>, Error> {
    let port_id_a = channel.port_a.value();
    let channel_id_a = channel.channel_id_a.value();
    let request = QueryUnreceivedPacketsRequest {
        port_id: port_id_a.clone(),
        channel_id: *channel_id_a,
        packet_commitment_sequences: Vec::new(),
    };
    Ok(chain.query_unreceived_packets(request)?)
}

pub fn get_committed_packets_at_src<ChainA: ChainHandle, ChainB: ChainHandle>(
    chain: &ChainA,
    channel: &ConnectedChannel<ChainA, ChainB>,
) -> Result<Vec<Sequence>, Error> {
    let port_id_a = channel.port_a.value();
    let channel_id_a = channel.channel_id_a.value();
    let request = QueryPacketCommitmentsRequest {
        port_id: port_id_a.clone(),
        channel_id: *channel_id_a,
        pagination: None,
    };
    let (sequences, _) = chain.query_packet_commitments(request)?;
    Ok(sequences)
}

pub fn get_unacknowledged_packets_at_src<ChainA: ChainHandle, ChainB: ChainHandle>(
    chain: &ChainA,
    channel: &ConnectedChannel<ChainA, ChainB>,
) -> Result<Vec<Sequence>, Error> {
    let port_id_a = channel.port_a.value();
    let channel_id_a = channel.channel_id_a.value();
    let request = QueryUnreceivedAcksRequest {
        port_id: port_id_a.clone(),
        channel_id: *channel_id_a,
        packet_ack_sequences: Vec::new(),
    };
    Ok(chain.query_unreceived_acknowledgements(request)?)
}

pub fn get_acknowledged_p


40992,Float64Array,"536870912",13.37,v6];
// v7 = .object(ofGroup: Array, withProperties: ["constructor", "__proto__", "length"], withMethods: ["toString", "indexOf", "unshift", "shift", "concat", "sort", "reduceRight", "flatMap", "forEach", "entries", "every", "values", "push", "find", "fill", "toLocaleString", "join", "filter", "pop", "reverse", "some", "reduce", "splice", "includes", "lastIndexOf", "findIndex", "flat", "map", "slice", "keys", "copyWithin"])
const v8 = {constructor:1337};
// v8 = .object(ofGroup: Object, withProperties: ["__proto__", "constructor"])
const v9 = {b:9007199254740992,d:v4,length:9007199254740992,toString:v4,valueOf:v8};
// v9 = .object(ofGroup: Object, withProperties: ["b", "__proto__", "toString", "valueOf", "length", "d"])
let v10 = 13.37;
const v15 = [13.37,13.37,13.37];
// v15 = .object(ofGroup: Array, withProperties: ["constructor", "__proto__", "length"], withMethods: ["toString", "indexOf", "unshift", "shift", "concat", "sort", "reduceRight", "flatMap", "forEach", "entries", "every", "values", "push", "find", "fill", "toLocaleString", "join", "filter", "pop", "reverse", "some", "reduce", "splice", "includes", "lastIndexOf", "findIndex", "flat", "map", "slice", "keys", "copyWithin"])
const v17 = [1337];
// v17 = .object(ofGroup: Array, withProperties: ["constructor", "__proto__", "length"], withMethods: ["toString", "indexOf", "unshift", "shift", "concat", "sort", "reduceRight", "flatMap", "forEach", "entries", "every", "values", "push", "find", "fill", "toLocaleString", "join", "filter", "pop", "reverse", "some", "reduce", "splice", "includes", "lastIndexOf", "findIndex", "flat", "map", "slice", "keys", "copyWithin"])
const v18 = ["4294967297",v15,1337,1337];
// v18 = .object(ofGroup: Array, withProperties: ["constructor", "__proto__", "length"], withMethods: ["toString", "indexOf", "unshift", "shift", "concat", "sort", "reduceRight", "flatMap", "forEach", "entries", "every", "values", "push", "find", "fill", "toLocaleString", "join", "filter", "pop", "reverse", "some", "reduce", "splice", "includes", "lastIndexOf", "findIndex", "flat", "map", "slice", "keys", "copyWithin"])
const v19 = {__proto__:v18,c:v17,constructor:13.37,length:v17,toString:13.37,valueOf:13.37};
// v19 = .object(ofGroup: Object, withProperties: ["valueOf", "length", "c", "toString", "__proto__", "constructor"])
const v20 = {__proto__:v19,constructor:"4294967297",d:4294967296,toString:1337,valueOf:1337};
// v20 = .object(ofGroup: Object, withProperties: ["valueOf", "toString", "__proto__", "constructor", "d"])
let v21 = v20;
function v22(v23,v24) {
    v21 = 1337;
    function v26(v27,v28) {
        const v30 = [1337];
        // v30 = .object(ofGroup: Array, withProperties: ["constructor", "__proto__", "length"], withMethods: ["toString", "indexOf", "unshift", "shift", "concat", "sort", "reduceRight", "flatMap", "forEach", "entries", "every", "values", "push", "find", "fill", "toLo


 -> Self;
}

/// Generic language type that implement the [`Language`] trait.
///
/// This type can be used as a default generic type when sharing models between multiple
/// crates that does not necessarily use translations.
///
/// ## Panics
/// The [`fallback`] method of the [`Language`] trait is not implemented and will panic if called.
///
/// [`fallback`]: Language::fallback
pub struct GenericLanguage(String);

impl Language for GenericLanguage {
    fn from_language_id(language_id: &LanguageId) -> Option<Self> {
        Some(Self(language_id.value().into()))
    }

    fn language_id(&self) -> LanguageId {
        LanguageId::new(&self.0)
    }

    fn fallback() -> Self {
        unimplemented!("GenericLanguage has no fallback language")
    }
}

/// ISO 639-1 language identifier.
///
/// This type holds a string representing a language in the [ISO 693-1] format (two-letter code).
/// The inner value is stored in a [`Cow`] to avoid allocation when possible.
///
/// ## Validation
/// The type inner value is not validated unless the [`validate`] method is used to initialize the instance.
/// Generally, you should use this method to initialize this type.
///
/// The performed validation only checks that the provided *looks like* an [ISO 693-1]language identifier
/// (2 character alphanumeric ascii string).
///
/// ## Serde support
/// This type implements the `Serialize` and `Deserialize` traits if the `serde` feature is enabled.
/// Deserialization will fail if the value is not an ISO 639-1 language identifier.
///
/// ## Example
/// ```
/// use rosetta_i18n::LanguageId;
///
/// let language_id = LanguageId::new("fr");
/// assert_eq!(language_id.value(), "fr");
///
/// let language_id = LanguageId::validate("fr");
/// assert!(language_id.is_some());
/// ```
///
/// [ISO 693-1]: https://en.wikipedia.org/wiki/ISO_639-1
/// [`validate`]: LanguageId::validate
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct LanguageId<'a>(Cow<'a, str>);

impl<'a> LanguageId<'a> {
    /// Initialize a new valid [`LanguageId`].
    ///
    /// Unlike [`new`], this method ensures that the provided
    /// value is a valid [ISO 693-1] encoded language id.
    ///
    /// ```
    /// # use rosetta_i18n::LanguageId;
    /// assert!(LanguageId::validate("fr").is_some());
    /// assert!(LanguageId::validate("invalid").is_none());
    /// ```
    ///
    /// [`new`]: LanguageId::new
    /// [ISO 693-1]: https://en.wikipedia.org/wiki/ISO_639-1
    pub fn validate(value: &str) -> Option<Self> {
        let valid_length = value.len() == 2;
        let ascii_alphabetic = value.chars().all(|c| c.is_ascii_alphabetic());

        if valid_length && ascii_alphabetic {
            Some(Self(Cow::Owned(value.to_ascii_lowercase())))
        } else {
            None
        }
    }

    /// Initialize a new [`LanguageId`] from a string.
    ///
    /// The provided value must be an [ISO 693-1] encoded language id.
    /// If you want to validate the value, use [`validate`] instead.
    ///
    /// ```
    /// # use rosetta_i18n::LanguageId;
    /// let language_id = LanguageId::new("en");
    /// assert_eq!(language_id.value(), "en");
    /// ```
    ///
    /// [ISO 693-1]: https://en.


 중국어 독자들이 번역된 텍스트를 읽을 때 '번역투'가 아닌, 마치 **원래 중국어로 쓰인 소설처럼 느끼도록** 하는 것을 목표로 합니다.

3.  **'소설의 맛' 재현 및 현지화 (还原小说“味道”与本土化)**:
    * 한국어 소설이 가진 서정성, 역동성, 비극성 등 고유한 '맛'을 중국어의 풍부한 표현력(특히 사자성어, 고사성어, 중국 문학적 수사법 등)을 활용하여 전달합니다.
    * 중국 독자들이 보편적으로 공감할 수 있는 문화적 코드와 심리적 메커니즘을 고려하여, 원작의 감동과 메시지를 효과적으로 전달합니다.

4.  **문화적 간극 해소 (弥合文化隔阂)**:
    * 한국 고유의 문화적 배경, 역사적 사건, 사회적 관습 등이 중국 독자에게 낯설 수 있음을 인지하고, 번역 과정에서 이를 해설하거나, 중국 독자에게 익숙한 유사 개념으로 재개념화하여 이해를 돕습니다.
    * 불필요한 오해를 유발할 수 있는 표현은 신중하게 다루고, 필요시 각주 또는 해설을 통해 보충 설명을 제공합니다.

## 3. 핵심 번역 원리: 인지 도식 기반 접근 (核心翻译原理：认知图式基础方法)

당신은 언어학적 인지 문법 이론에 기반한 12가지 핵심 인지 도식을 활용하여 한국어 원문의 의미를 깊이 있게 분석하고, 이를 중국어로 재개념화합니다. 이 과정은 단순한 의미 대응을 넘어, 원문의 개념적 구조와 화자의 의도, 감정을 포착하여 중국어 독자에게 동일한 인지적, 정서적 경험을 제공하는 것을 목표로 합니다.

**12가지 인지 도식(Image Schemas) 및 중국어 번역에서의 활용 예시:


                                                |
| ---------------------------------- | ------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 北京、河北                         | 延崇高速                                         | 116公里，其中北京段33.2公里                                  | 2018年12月开放，开展车路协同智能驾驶演示2019年12月L4级自动驾驶和队列跟驰测试2021年8月延崇高速（河北段）延伸工程通车 |
|                                    | 大兴新机场高速                                   | 27公里                                                       | 2019年7月开放                                                |
|                                    | 京雄高速                                         | 97公里，其中北京段27公里                                     | 2019年8月，京雄高速一期工程开工建设2021年5月底，河北段正式通车 |
|                                    | 荣乌高速新线                                     | 72.8公里                                                     | 2021年5月底正式通车                                          |
|                                    | 京德高速                                         | 一期87公里                                                   | 2021年5月底一期正式通车2021年9月二期开工建设                 |
| 北京、天津、河北、山�


({name: 'roleCheck'})
export class RoleCheckPipe implements PipeTransform {
    transform(value) {
        const role = []
        if(value && value.length > 0){
            value.forEach((data)=>{
                if(data == '1'){
                    role.push('Admin');
                }
                if(data == '2'){
                    role.push('WebMaster');
                }
                if(data == '3'){
                    role.push('Editor');
                }
                if(data == '4'){
                    role.push('Moderator');
                }
                if(data == '5'){
                    role.push('Speaker');
                }
            })
        }
        return role;
    }
}

/*
 * @Author: kekeqy
 * @Date: 2018-12-11 12:13:20
 * @LastEditors: kekeqy
 * @LastEditTime: 2018-12-11 12:14:12
 * @Description: 摄像机类型，用于摄像机2D/3D视角切换
 */
export enum CameraView {
    /**
     * 正常视角
     */
    Normal,
    /**
     * 顶部视角
     */
    TopView,
    /**
     * 左边视角(未实现)
     */
    LeftView,
    /**
     * 右边视角(未实现)
     */
    RightView,
    /**
     * 前视角(未实现)
     */
    FrontView,
    /**
     * 后视角(未实现)
     */
    BackView,
    /**
     * @ignore
     */
    Perspective,
}import { useState, useMemo, useEffect } from 'react';
import { c } from 'ttag';
import { useInterval, useHandler } from 'react-components';
import { fromUnixTime, isAfter, differenceInSeconds } from 'date-fns';

import { Element } from '../models/element';
import { EXPIRATION_CHECK_FREQUENCY } from '../constants';

export const formatDelay = (nowDate: Date, expirationDate: Date): string => {
    let delta = differenceInSeconds(expirationDate, nowDate);
    const days = Math.floor(delta / 86400);
    delta -= days * 86400;
    const hours = Math.floor(delta / 3600) % 24;
    delta -= hours * 3600;
    const minutes = Math.floor(delta / 60) % 60;
    delta -= minutes * 60;
    const seconds = delta % 60;
    return [
        {
            diff: days,
            unit: c('Time unit').t`day`,
            units: c('Time unit').t`days`,
        },
        {
            diff: hours,
            unit: c('Time unit').t`hour`,
            units: c('Time unit').t`hours`,
        },
        {
            diff: minutes,
            unit: c('Time unit').t`minute`,
            units: c('Time unit').t`minutes`,
        },
        {
            diff: seconds,
            unit: c('Time unit').t`second`,
            units: c('Time unit').t`seconds`,
        },
    ]
        .reduce((acc: string[], { diff, unit, units }: { diff: number; unit: string; units: string }) => {
            if (diff) {
                acc.push(diff === 1 ? `${diff} ${unit}` : `${diff} ${units}`);
            }
            return acc;
        }, [])
        .join(', ');
};

export const useExpiration = ({ ExpirationTime }: Element): [boolean, string] => {
    const [delayMessage, setDelayMessage] = useState('');

    const expirationDate = useMemo(() => fromUnixTime(ExpirationTime || 0), [ExpirationTime]);

    const handler = useHandler(() => {
        if (!ExpirationTime) {
            setDelayMessage('');
            return;
        }

        const nowDate = new Date();

        if (isAfter(nowDate, expirationDate)) {
            setDelayMessage(c('Info').t`This message is expired!`);
            return;
        }
        const formattedDelay = formatDelay(nowDate, expirationDate);


overflow: hidden;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        }

        .analytics-table th,
        .analytics-table td {
            padding: 1rem;
            border-bottom: 1px solid #e5e7eb;
            text-align: left;
        }

        .analytics-table th {
            background-color: #f3f4f6;
        }

        .progress-bar {
            background-color: #e5e7eb;
            border-radius: 8px;
            overflow: hidden;
            height: 20px;
            width: 100%;
        }

        .progress-fill {
            background-color: #3b82f6;
            height: 100%;
            color: white;
            text-align: center;
            line-height: 20px;
            font-size: 12px;
        }

        .summary-row td {
            font-weight: bold;
            background-color: #fef3c7;
        }

        .top-buttons {
    margin-bottom: 1.5rem;
}

    .dynamic-button {
        display: inline-block;
        padding: 0.6rem 1.2rem;
        background-color: #1e3a8a;
        color: white;
        border-radius: 8px;
        text-decoration: none;
        font-weight: bold;
        font-size: 14px;
        transition: background-color 0.2s ease;
    }

    .dynamic-button:hover {
        background-color: #3b4cca;
    }
    </style>

Аналитика заказов

        📊 Динамика работы швей по дням

        <input type="text" id="userFilterInput" placeholder="Фамилия или имя швеи" list="userSuggestions">
        <datalist id="userSuggestions"></datalist>

        <input type="text" id="productFilterInput" placeholder="Название изделия" list="productSuggestions">
        <datalist id="productSuggestions"></datalist>

        <button class="status-btn" onclick="fetchAnalytics()">Применить</button>

                Изделие
                Выполнено / Всего
                Прогресс
                Осталось
                Швея


from .coco_det import Mscoco_det
from .concat_dataset import ConcatDataset
from .custom import CustomDataset
from .mscoco import Mscoco
from .mpii import Mpii
from .coco_wholebody import coco_wholebody
from .coco_wholebody_det import coco_wholebody_det
from .halpe_26 import Halpe_26
from .halpe_136 import Halpe_136
from .halpe_136_det import  Halpe_136_det
from .halpe_26_det import  Halpe_26_det
from .halpe_coco_wholebody_26 import Halpe_coco_wholebody_26
from .halpe_coco_wholebody_26_det import Halpe_coco_wholebody_26_det
from .halpe_coco_wholebody_136 import Halpe_coco_wholebody_136
from .halpe_coco_wholebody_136_det import Halpe_coco_wholebody_136_det
from .halpe_68_noface import Halpe_68_noface
from .halpe_68_noface_det import Halpe_68_noface_det
from .single_hand import SingleHand
from .single_hand_det import SingleHand_det

__all__ = ['CustomDataset', 'ConcatDataset', 'Mpii', 'Mscoco', 'Mscoco_det', \
		   'Halpe_26', 'Halpe_26_det', 'Halpe_136', 'Halpe_136_det', \
		   'Halpe_coco_wholebody_26', 'Halpe_coco_wholebody_26_det', \
		   'Halpe_coco_wholebody_136', 'Halpe_coco_wholebody_136_det', \
		   'Halpe_68_noface', 'Halpe_68_noface_det', 'SingleHand', 'SingleHand_det', \
		   'coco_wholebody', 'coco_wholebody_det']


), jsonDecoder: JsonDecoder = new JsonDecoder(), jsonEncoder: JsonEncoder = new JsonEncoder()) {
        this.typeBinder = typeBinder;
        this.jsonDecoder = jsonDecoder;
        this.jsonEncoder = jsonEncoder;
    }

    public get<T>(key: string, type?: new(...args) => T, ...generics: any[]): Promise<T> {
        return new Promise<T>((resolve, reject) => {
            let data = this.getStorage().getItem(key);
            if (data === null) {
                reject(key);
            } else {
                let wrapper = JSON.parse(data);
                if (type) {
                    resolve(this.typeBinder.bind(wrapper.item, type, ...generics));
                } else {
                    resolve(wrapper.item);
                }
            }
        });
    }

    public set<T>(key: string, item: T): Promise<T> {
        this.getStorage().setItem(key, this.jsonEncoder.encode({ item }));
        return Promise.resolve(item);
    }

    public remove<T>(key: string): Promise<StorageEngine> {
        this.getStorage().removeItem(key);
        return Promise.resolve(this);
    }

    protected abstract getStorage(): Storage;

}
import { addCeloEnvMiddleware, CeloEnvArgv, envVar, fetchEnv } from 'src/lib/env-utils'
import { execCmd } from 'src/lib/utils'
import * as yargs from 'yargs'

export const command = 'ssh-vm-node <nodeType> [nodeIndex]'

export const describe =
  'Generates a command to ssh into a vm-testnet node. To execute the ssh command, run `eval $(<this cmd>)`'

interface SshVmNodeArgv extends CeloEnvArgv {
  nodeType: 'validator' | 'tx-node' | 'bootnode'
  nodeIndex?: number
}

export const builder = (argv: yargs.Argv) => {
  return addCeloEnvMiddleware(argv)
    .positional('nodeType', {
      describe: 'Type of node',
      choices: ['validator', 'tx-node', 'bootnode'],
      type: 'string',
    })
    .positional('nodeIndex', {
      describe: 'Index of the node. Only needed for validator or tx-node',
      type: 'number',
    })
    .check((checkArgv: SshVmNodeArgv) => {
      const requiresIndex = checkArgv.nodeType === 'validator' || checkArgv.nodeType === 'tx-node'
      if (requiresIndex && checkArgv.nodeIndex === undefined) {
        return new Error(`nodeIndex is required for nodeType ${checkArgv.nodeType}`)
      }
      return true
    })
}

export const handler = async (argv: SshVmNodeArgv) => {
  const project = fetchEnv(envVar.TESTNET_PROJECT_NAME)
  const zone = fetchEnv(envVar.KUBERNETES_CLUSTER_ZONE)

  let instanceName
  if (argv.nodeType === 'tx-node') {
    instanceName = await getTxNodeVmName(argv.celoEnv, argv.nodeIndex || 0)
  } else {
    instanceName = `${argv.celoEnv}-${argv.nodeType}`
    if (argv.nodeIndex !== undefined) {
      instanceName += `-${argv.nodeIndex}`
    }
  }

  console.info(getSshCommand(project, zone, instanceName))
}

function getSshCommand(gcloudProject: string, gcloudZone: string, instanceName: string) {
  return `gcloud beta compute --project '${gcloudProject}' ssh --zone '${gcloudZone}' ${instanceName}`
}

// Tx-nodes names have a randomly generated suffix. This returns the full name
// of the instance given only the celoEnv and index.
async function getTxNodeVmName(celoEnv: string, index: number) {
  const [nodeName] = await execCmd(
    `gcloud compute instances list --filter="NAME ~ ${celoEnv}-tx-node-${index}-.*" --format get\\(NAME\\)`
  )
  return nodeName.trim()
}
import { ContactModel } from './model'
import { Contact } from '../../../common/models/contact';

/**
 * Controller Contact List
 * @param {import('express').Request} req
 * @param {


sel = add(sel, sel)                       //
                 q1 = not(q0)                              //
             } {
                 vpred |= vand(q1, sel)                    //___1 !v(96)
                 sel = add(sel, sel)                       //
                 q1 = and(q0, !q0)                         //
                 fetch0 = add(ptr_x0, FETCH_INC)           //[
             } {
		 loop0(.L_matmul32, n)                     //[P, ]]
                 vpred |= vand(q1, sel)                    //sel = 0x10101010
                 xsum0 = memw(actns_adjust+#0<<2)          //[P,  ]batch 0 -sum
              } {
                 d07654_d03210 = memd(ptr_x0++#1<<3)       //[0, 0]read batch 0
                 sum00 = vsplat(xsum0)                     //[P,  ]splat the sum of accs
              } {
                 d0fedc_d0ba98 = memd(ptr_x0++#1<<3)       //[0, 2]read batch 0
                 sum00.w = vadd(sum00.w, wsum.w)           //[P,  ]set up accumulator 0
                 out_ptr0 = add(ptr_zi, woffset)           //add the output weights offset
              }
/* ------------------------------------------------------------------------------ */
       .balign 32
.L_matmul32:
              {  dcfetch(fetch0+#0<<6)                     //[0, 3]prefetch batch 0
                 fetch0 = add(fetch0, FETCH_INC)           //[0, 3]increment fetch
                 weight00.tmp = vmem(ptr_w++#1)            //[0, 4]read weights
                 sum00.uw += vrmpy(weight00.ub, d03210.ub) //[0, 4]do dotproduct of acts with matrix
              } {
                 weight01.tmp = vmem(ptr_w++#1)            //[0, 5]read weights
                 sum00.uw += vrmpy(weight01.ub, d07654.ub) //[0, 5]do dotproduct of acts with matrix
                 d07654_d03210 = memd(ptr_x0++#1<<3)       //[1, 0]get batch input
              } {
                 weight02.tmp = vmem(ptr_w++#1)            //[0, 6]read weights
                 sum00.uw += vrmpy(weight02.ub, d0ba98.ub) //[0, 6]do dotproduct of acts with matrix
              } {
                 weight03.tmp = vmem(ptr_w++#1)            //[0, 7]read weights
                 sum00.uw += vrmpy(weight03.ub, d0fedc.ub) //[0, 7]do dotproduct of acts with matrix
                 d0fedc_d0ba98 = memd(ptr_x0++#1<<3)       //[1, 2]get batch input
              }:endloop0
/* ------------------------------------------------------


ITIVE_INTEGER_LITERAL:
				{
				int LA21_2 = input.LA(2);
				if ( (LA21_2==EOF||(LA21_2 >= ACCESS_SPEC && LA21_2 <= ANNOTATION_VISIBILITY)||LA21_2==BOOL_LITERAL||(LA21_2 >= CLASS_DIRECTIVE && LA21_2 <= CLOSE_BRACE)||LA21_2==COMMA||(LA21_2 >= DOUBLE_LITERAL_OR_ID && LA21_2 <= END_ANNOTATION_DIRECTIVE)||LA21_2==END_FIELD_DIRECTIVE||LA21_2==END_SUBANNOTATION_DIRECTIVE||LA21_2==FIELD_DIRECTIVE||(LA21_2 >= FLOAT_LITERAL_OR_ID && LA21_2 <= IMPLEMENTS_DIRECTIVE)||(LA21_2 >= INSTRUCTION_FORMAT10t && LA21_2 <= INSTRUCTION_FORMAT10x_ODEX)||LA21_2==INSTRUCTION_FORMAT11x||LA21_2==INSTRUCTION_FORMAT12x_OR_ID||(LA21_2 >= INSTRUCTION_FORMAT21c_FIELD && LA21_2 <= INSTRUCTION_FORMAT21c_TYPE)||LA21_2==INSTRUCTION_FORMAT21t||(LA21_2 >= INSTRUCTION_FORMAT22c_FIELD && LA21_2 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA21_2 >= INSTRUCTION_FORMAT22s_OR_ID && LA21_2 <= INSTRUCTION_FORMAT22t)||LA21_2==INSTRUCTION_FORMAT23x||(LA21_2 >= INSTRUCTION_FORMAT31i_OR_ID && LA21_2 <= INSTRUCTION_FORMAT31t)||(LA21_2 >= INSTRUCTION_FORMAT35c_METHOD && LA21_2 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA21_2 >= INSTRUCTION_FORMAT45cc_METHOD && LA21_2 <= INSTRUCTION_FORMAT51l)||(LA21_2 >= METHOD_DIRECTIVE && LA21_2 <= NULL_LITERAL)||(LA21_2 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA21_2 <= PRIMITIVE_TYPE)||LA21_2==REGISTER||(LA21_2 >= SIMPLE_NAME && LA21_2 <= SOURCE_DIRECTIVE)||(LA21_2 >= SUPER_DIRECTIVE && LA21_2 <= VOID_TYPE)) ) {
					alt21=2;
				}
				else if ( (LA21_2==COLON||LA21_2==OPEN_PAREN) ) {
					alt21=13;
				}

				else {
					int nvaeMark = input.mark();
					try {
						input.consume();
						NoViableAltException nvae =
							new NoViableAltException("", 21, 2, input);
						throw nvae;
					} finally {
						input.rewind(nvaeMark);
					}
				}

				}
				break;
			case NEGATIVE_INTEGER_LITERAL:
				{
				int LA21_3 = input.LA(2);
				if ( (LA21_3==EOF||(LA21_3 >= ACCESS_SPEC && LA21_3 <= ANNOTATION_VISIBILITY)||LA21_3==BOOL_LITERAL||(LA21_3 >= CLASS_DIRECTIVE && LA21_3 <= CLOSE_BRACE)||LA21_3==COMMA||(LA21_3 >= DOUBLE_LITERAL_OR_ID && LA21_3 <= END_ANNOTATION_DIRECTIVE)||LA21_3==END_FIELD_DIRECTIVE||LA21_3==END_SUBANNOTATION_DIRECTIVE||LA21_3==FIELD_DIRECTIVE||(LA21_3 >= FLOAT_LITERAL_OR_ID && LA21_3 <= IMPLEMENTS_DIRECTIVE)||(LA21_3 >= INSTRUCTION_FORMAT10t && LA21_3 <= INSTRUCTION_FORMAT10x_ODEX)||LA21_3==INSTRUCTION_FORMAT11x||LA21_3==INSTRUCTION_FORMAT12x_OR_ID||(LA21_3 >= INSTRUCTI


l function check_for_conflicts()
  h.start('Checking for conflicting plugins')
  for _, autocmd in ipairs(vim.api.nvim_get_autocmds { event = 'FileType', pattern = 'haskell' }) do
    if autocmd.group_name and autocmd.group_name == 'lspconfig' and autocmd.desc and autocmd.desc:match(' hls ') then
      h.error('lspconfig.hls has been setup. This will likely lead to conflicts with the haskell-tools LSP client.')
      return
    end
  end
  h.ok('No conflicting plugins detected.')
end

function health.check()
  h.start('Checking for Lua dependencies')
  for _, dep in ipairs(lua_dependencies) do
    check_lua_dependency(dep)
  end

  h.start('Checking external dependencies')
  for _, dep in ipairs(external_dependencies) do
    check_external_dependency(dep)
  end
  check_config()
  check_for_conflicts()
end

return health


 getARGB(tile: Tile?): Int {
        val rgba = getRGBA(tile)
        val a = rgba and 255
        val rgb = rgba ushr 8
        return (a shl 24) + rgb
    }

    private fun getRGBA(tile: Tile?): Int {
        return when {
            tile == null -> 0
            tile.block().minimapColor(tile) != 0 -> tile.block().minimapColor(tile)
            tile.block().synthetic() -> tile.team().color.rgba()
            tile.block().solid -> tile.block().mapColor.rgba()
            tile.overlay() != Blocks.air -> tile.overlay().mapColor.rgba()
            else -> tile.floor().mapColor.rgba()
        }
    }
}
listen<EventType.WorldLoadEvent> {
    MapRenderer.drawAll(world)
}
listen<EventType.TileChangeEvent> {
    it.tile.getLinkedTiles(MapRenderer::update)
}
listen<EventType.ResetEvent> {
    MapRenderer.img = null
}
onEnable {
    MapRenderer.loadColors(content)
    if (net.server())
        MapRenderer.drawAll(world)
}
registerVar("wayzer.ext.mapSnap._get", "地图快照截图接口", { MapRenderer.img })

command("saveSnap", "保存当前服务器地图截图") {
    type = CommandType.Server
    body {
        val img = MapRenderer.img ?: returnReply("[red]地图未加载".with())
        val dir = dataDirectory.child("mapSnap").apply { mkdirs() }
        val file = dir.child("mapSnap-${SimpleDateFormat("YYYYMMdd-hhmm").format(Date())}.png")
        file.write().use { ImageIO.write(img, "png", it) }
        reply("[green]快照已保存到{file}".with("file" to file))
    }
}/*
 * Copyright 2002-2017 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.web.reactive.function.client

import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Answers
import org.mockito.Mock
import org.mockito.Mockito.times
import org.mockito.Mockito.verify
import org.mockito.junit.MockitoJUnitRunner
import org.springframework.core.ParameterizedTypeReference

/**
 * Mock object based tests for [ClientResponse] Kotlin extensions.
 *
 * @author Sebastien Deleuze
 */
@RunWith(MockitoJUnitRunner::class)
class ClientResponseExtensionsTests {

	@Mock(answer = Answers.RETURNS_MOCKS)
	lateinit var response: ClientResponse

	@Test
	fun `bodyToMono with reified type parameters`() {
		response.bodyToMono<List<Foo>>()
		verify(response, times(1)).bodyToMono(object : ParameterizedTypeReference<List<Foo>>() {})
	}

	@Test
	fun `bodyToFlux with reified type parameters`() {
		response.bodyToFlux<List<Foo>>()
		verify(response, times(1)).bodyToFlux(object : ParameterizedTypeReference<List<Foo>>() {})
	}

	@Test
	fun `toEntity with reified type parameters`() {
		response.toEntity<List<Foo>>()
		verify(response, times(1)).toEntity(object : ParameterizedTypeReference<List<Foo>>() {})
	}

	@Test
	fun `ResponseSpec#toEntityList with reified type parameters`() {
		respons


.form.TextBox" value="1">

                ${pixels}

                ${cellPadding}

                ${cellSpacing}

${buttonSet}

${buttonCancel}

+

	<input dojoAttachPoint="valueNode" type="hidden" ${!nameAttrSetting}
			/>

<div role="presentation" dojoAttachPoint="progressBar,focusNode" tabIndex="${tabIndex}" class="dijitSliderBar dijitSliderBarV dijitSliderProgressBar dijitSliderProgressBarV" dojoAttachEvent="onkeypress:_onKeyPress,onmousedown:_o


)证监会要求载明的其他事项。

第十六条 招股说明书的封面应当载明：“发行人保证招股说明书的内容真实、准确、完整。政府及国家证券管理部门对本次发行所作出的任何决定，均不表明其对发行人所发行的股票的价值或者投资人的收益作出实质性判断或者保证。”

第十七条 全体发起人或者董事以及主承销商应当在招股说明书上签字，保证招股说明书没有虚假、严重误导性陈述或者重大遗漏，并保证对其承担连带责任。

第十八条 为发行人出具文件的注册会计师及其所在事务所、专业评估人员及其所在机构、律师及其所在事务所，在履行职责时，应当按照本行业公认的业务标准和道德规范，对其出具文件内容的真实性、准确性、完整性进行核查和验证。

第十九条 在获准公开发行股票前，任何人不得以任何形式泄露招股说明书的内容。在获准公开发行股票后，发行人应当在承销期开始前二个至五个工作日期间公布招股说明书。

发行人应当向认购人提供招股说明书。证券承销机构应当将招股说明书备置于营业场所，并有义务提醒认购人阅读招股说明书。

招股说明书的有效期为六个月，自招股说明书签署完毕之日起计算。招股说明书失效后，股票发行必须立即停止。

第二十条 公开发行的股票应当由证券经营机构承销。承销包括包销和代销两种方式。

发行人应当与证券经营机构签署承销协议。承销协议应当载明下列事项：

(一)当事人的名称、住所及法定代表人的姓名；

(二)承销方式；

(三)承销股票的种类、数量、金额及发行价格；

(四)承销期及起止日期；

(五)承销付款的日期及方式；

(六)承销费用的计算、支付方式和日期；

(七)违约责任；

(八)其他需要约定的事项。

证券经营机构收取承销费用的原则，由证监会确定。

第二十一条 证券经营机构承�


">-341.72
-395.20
-1907.95

<math id="S5.T2.31.13.13.1.m1.1" class="ltx_Math" alttext="A18" display="inline"><semantics id="S5.T2.31.13.13.1.m1.1a"><mrow id="S5.T2.31.13.13.1.m1.1.1" xref="S5.T2.31.13.13.1.m1.1.1.cmml"><mi id="S5.T2.31.13.13.1.m1.1.1.2" xref="S5.T2.31.13.13.1.m1.1.1.2.cmml">A</mi><mo lspace="0em" rspace="0em" id="S5.T2.31.13.13.1.m1.1.1.1" xref="S5.T2.31.13.13.1.m1.1.1.1.cmml"></mo><mn id="S5.T2.31.13.13.1.m1.1.1.3" xref="S5.T2.31.13.13.1.m1.1.1.3.cmml">18</mn></mrow><annotation-xml encoding="MathML-Content" id="S5.T2.31.13.13.1.m1.1b"><apply id="S5.T2.31.13.13.1.m1.1.1.cmml" xref="S5.T2.31.13.13.1.m1.1.1"><times id="S5.T2.31.13.13.1.m1.1.1.1.cmml" xref="S5.T2.31.13.13.1.m1.1.1.1"></times><ci id="S5.T2.31.13.13.1.m1.1.1.2.cmml" xref="S5.T2.31.13.13.1.m1.1.1.2">𝐴</ci><cn type="integer" id="S5.T2.31.13.13.1.m1.1.1.3.cmml" xref="S5.T2.31.13.13.1.m1.1.1.3">18</cn></apply></annotation-xml><annotation encoding="application/x-tex" id="S5.T2.31.13.13.1.m1.1c">A18</annotation></semantics></math>
-61.20
-116.37
-342.10
-408.55
-1960.31

exp
-


github.com/lambertkevin)! - Add EIP712 CAL and CAL importer

### Patch Changes

- [#1766](https://github.com/LedgerHQ/ledger-live/pull/1766) [`0308e8c6ae`](https://github.com/LedgerHQ/ledger-live/commit/0308e8c6ae721a99bc50f5dc60db0d11ea8ea1ff) Thanks [@gre](https://github.com/gre)! - Fixes resiliency of deserializeError.

* [#1729](https://github.com/LedgerHQ/ledger-live/pull/1729) [`d3c91a53e0`](https://github.com/LedgerHQ/ledger-live/commit/d3c91a53e06f9f47817e96c452f69e2d9f71d80f) Thanks [@gre](https://github.com/gre)! - update node-hid to 2.1.2

- [#1141](https://github.com/LedgerHQ/ledger-live/pull/1141) [`24ea9cd15f`](https://github.com/LedgerHQ/ledger-live/commit/24ea9cd15f92d5a2c74c4b936bacb89d5d4d36fd) Thanks [@valpinkman](https://github.com/valpinkman)! - Collateral changes due to solving all LLM typescript/eslint issues/warnings.

## 0.0.4

### Patch Changes

- [#1419](https://github.com/LedgerHQ/ledger-live/pull/1419) [`2100b9fb81`](https://github.com/LedgerHQ/ledger-live/commit/2100b9fb81a4fd04f65b96561c0a7d618658843a) Thanks [@gre](https://github.com/gre)! - Introduce tests to ensure we define abandonseed values for coin we support

## 0.0.4-next.0

### Patch Changes

- [#1419](https://github.com/LedgerHQ/ledger-live/pull/1419) [`2100b9fb81`](https://github.com/LedgerHQ/ledger-live/commit/2100b9fb81a4fd04f65b96561c0a7d618658843a) Thanks [@gre](https://github.com/gre)! - Introduce tests to ensure we define abandonseed values for coin we support

## 0.0.3

### Patch Changes

- [#1179](https://github.com/LedgerHQ/ledger-live/pull/1179) [`ae5e33e15e`](https://github.com/LedgerHQ/ledger-live/commit/ae5e33e15e8a107d0ba8a3688a63eda2c0d43ce7) Thanks [@gre](https://github.com/gre)! - Improve TypeScript of @ledgerhq/errors and fixes 2 bugs in swap and stellar on their error handling

## 0.0.3-next.0

### Patch Changes

- [#1179](https://github.com/LedgerHQ/ledger-live/pull/1179) [`ae5e33e15`](https://github.com/LedgerHQ/ledger-live/commit/ae5e33e15e8a107d0ba8a3688a63eda2c0d43ce7) Thanks [@gre](https://github.com/gre)! - Improve TypeScript of @ledgerhq/errors and fixes 2 bugs in swap and stellar on their error handling

## 0.0.2

### Patch Changes

- [#1023](https://github.com/LedgerHQ/ledger-live/pull/1023) [`318e80452`](https://github.com/LedgerHQ/ledger-live/commit/318e80452569a0f91c4363ae50d2664419251dbd) Thanks [@gre](https://github.com/gre)! - Fixes testnet currencies to be \$0 valued on countervalues

## 0.0.2-next.0

### Patch Changes

- [#1023](https://github.com/LedgerHQ/ledger-live/pull/1023) [`318e804525`](https://github.com/LedgerHQ/ledger-live/commit/318e80452569a0f91c4363ae50d2664419251dbd) Thanks [@gre](https://github.com/gre)! -


e(REMOTE_SSN_FLAG, ai.remoteSsnFlag);
            xml.setAttribute(MARK_PROHIBITED_WHEN_SPC_RESUMING, ai.markProhibitedWhenSpcResuming);

        }

        public void read(InputElement xml, RemoteSubSystemImpl ai) throws XMLStreamException {
            ai.remoteSpc = xml.getAttribute(REMOTE_SPC).toInt();
            ai.remoteSsn = xml.getAttribute(REMOTE_SSN).toInt();
            ai.remoteSsnFlag = xml.getAttribute(REMOTE_SSN_FLAG).toInt();
            CharArray charArray = xml.getAttribute(MARK_PROHIBITED_WHEN_SPC_RESUMING);
            if (charArray == null) {
                ai.markProhibitedWhenSpcResuming = false;
            } else {
                ai.markProhibitedWhenSpcResuming = charArray.toBoolean();
            }
        }
    };
}
/*
 * TeleStax, Open Source Cloud Communications  Copyright 2012.
 * and individual contributors
 * by the @authors tag. See the copyright.txt in the distribution for a
 * full listing of individual contributors.
 *
 * This is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; either version 2.1 of
 * the License, or (at your option) any later version.
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this software; if not, write to the Free
 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 */

package org.mobicents.protocols.ss7.sccp.impl.router;

import javolution.xml.XMLFormat;
import javolution.xml.XMLSerializable;
import javolution.xml.stream.XMLStreamException;

import org.mobicents.protocols.ss7.sccp.LongMessageRule;
import org.mobicents.protocols.ss7.sccp.LongMessageRuleType;

/**
 *
 * @author sergey vetyutnev
 * @author Amit Bhayani
 *
 */
public class LongMessageRuleImpl implements LongMessageRule, XMLSerializable {
    private static final String FIRST_SPC = "firstSpc";
    private static final String LAST_SPC = "lastSpc";
    private static final String RULE_TYPE = "ruleType";

    private int firstSpc;
    private int lastSpc;
    private LongMessageRuleType ruleType;

    public LongMessageRuleImpl() {
    }

    public LongMessageRuleImpl(int firstSpc, int lastSpc, LongMessageRuleType ruleType) {
        this.firstSpc = firstSpc;
        this.lastSpc = lastSpc;
        this.ruleType = ruleType;
    }

    public LongMessageRuleType getLongMessageRuleType() {
        return ruleType;
    }

    public int getFirstSpc() {
        return firstSpc;
    }

    public int getLastSpc() {
        return lastSpc;
    }

    public boolean matches(int dpc) {
        if (dpc >= this.firstSpc && dpc <= this.lastSpc)
            return true;
        else
            return false;
    }

    @Override
    public String toString() {
        StringBuffer sb = new StringBuffer();
        sb.append("firstSpc=").append(this.firstSpc).append(", lastSpc=").append(this.lastSpc).append(", ruleType=")
                .append(this.ruleType);
        return sb.toString();
    }

    protected static final XMLFormat<LongMessageRuleImpl> XML = new