so always make sure that\n    // we can cancel any pending setState callbacks after we unmount.\n    callback = this.setNextCallback(callback);\n    this.setState(nextState, callback);\n  };\n\n  _proto.setNextCallback = function setNextCallback(callback) {\n    var _this4 = this;\n\n    var active = true;\n\n    this.nextCallback = function (event) {\n      if (active) {\n        active = false;\n        _this4.nextCallback = null;\n        callback(event);\n      }\n    };\n\n    this.nextCallback.cancel = function () {\n      active = false;\n    };\n\n    return this.nextCallback;\n  };\n\n  _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n    this.setNextCallback(handler);\n    var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n    if (!node || doesNotHaveTimeoutOrListener) {\n      setTimeout(this.nextCallback, 0);\n      return;\n    }\n\n    if (this.props.addEndListener) {\n      this.props.addEndListener(node, this.nextCallback);\n    }\n\n    if (timeout != null) {\n      setTimeout(this.nextCallback, timeout);\n    }\n  };\n\n  _proto.render = function render() {\n    var status = this.state.status;\n\n    if (status === UNMOUNTED) {\n      return null;\n    }\n\n    var _this$props = this.props,\n        children = _this$props.children,\n        childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n    delete childProps.in;\n    delete childProps.mountOnEnter;\n    delete childProps.unmountOnExit;\n    delete childProps.appear;\n    delete childProps.enter;\n    delete childProps.exit;\n    delete childProps.timeout;\n    delete childProps.addEndListener;\n    delete childProps.onEnter;\n    delete childProps.onEntering;\n    delete childProps.onEntered;\n    delete childProps.onExit;\n    delete childProps.onExiting;\n    delete childProps.onExited;\n\n    if (typeof children === 'function') {\n      return children(status, childProps);\n    }\n\n    var child = _react.default.Children.only(children);\n\n    return _react.default.cloneElement(child, childProps);\n  };\n\n  return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n  transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n  transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * A ` + ("`" + `function`)) + ("`" + (` child can be used instead of a React element.\n   * This function is called with the current transition status\n   * ('entering', 'entered', 'exiting', 'exited', 'unmounted'), which can be used\n   * to apply context specific props to a component.\n   *\n   * ` + "`")))))) + ((((("`" + "`") + (`jsx\n   * <Transition timeout={150}>\n   *   {(status) => (\n   *     <MyComponent className={` + ("`" + `fade fade-${status}`))) + (("`" + (`} />\n   *   )}\n   * </Transition>\n   * ` + "`")) + ("`" + ("`" + `\n   */\n  children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n  /**\n   * Show the component; triggers the enter or exit states\n   */\n  in: PropTypes.bool,\n\n  /**\n   * By default the child component is mounted immediately along with\n   * the parent `)))) + ((


_Transition__Close; }
	}
	&:before { background: $Slider-Thumb_BackgroundColor; }
	html:not(.slider-opened):not(.touch)  &:hover:before { background-color: $Slider-Thumb_BackgroundColor__Hover; }
	html:not(.slider-opened):not(.touch) &:active:before { background-color: $Slider-Thumb_BackgroundColor__Active; }
	&:after {
		@include offset($Slider-Thumb_Size__SliderOpened * -1);
		@include min-size($Slider-Thumb_Size__SliderOpened);
		html.appearance-horizontal & { @include size(100%, $Slider-Thumb_Size__SliderOpened); }
		html.appearance-vertical   & { @include size($Slider-Thumb_Size__SliderOpened, 100%); }
		border-radius: $Slider-Thumb_Size__SliderOpened * .5;
		border: $Slider-Thumb_Border__SliderOpened;
		background: $Slider-Thumb_BackgroundColor__SliderOpened;
		box-shadow: 0 0 0 $Slider-Thumb-Halo_Width__SliderOpened $Slider-Thumb-Halo_Color__SliderOpened;
	}
	&.min:after {
		border: $Slider-Thumb_Border__SliderOpened__Min;
		background: $Slider-Thumb_BackgroundColor__SliderOpened__Min;
	}
}

// - . Rail
// --------------------------------------------------------------------------------

div#bibi-slider-rail {
	& {
		background: $Slider-Rail-FullLength_Color__SliderOpened;
	}
	html.slider-opened.appearance-horizontal & { height: $Slider-Rail-FullLength_Width__SliderOpened; }
	html.slider-opened.appearance-vertical   & { width: $Slider-Rail-FullLength_Width__SliderOpened; }
	div#bibi-slider:hover                    & { background: $Slider-Rail-FullLength_Color__SliderOpened__Hover; }
}

div#bibi-slider-rail-groove {
	& {
		background: $Slider-Rail-Groove_Color__SliderOpened;
	}
	html.slider-opened.appearance-horizontal & { height: $Slider-Rail-Groove_Width__SliderOpened; }
	html.slider-opened.appearance-vertical   & { width: $Slider-Rail-Groove_Width__SliderOpened; }
	div#bibi-slider:hover                    & { background: $Slider-Rail-Groove_Color__SliderOpened__Hover; }
}

div#bibi-slider-rail-progress {
	& {
		background: $Slider-Rail-Progress_Color__SliderOpened;
	}
	html.slider-opened.appearance-horizontal & { height: $Slider-Rail-Progress_Width__SliderOpened; }
	html.slider-opened.appearance-vertical   & { width:  $Slider-Rail-Progress_Width__SliderOpened; }
	html.slider-opened.appearance-ltr        & { border-radius: 0 ($Slider-Rail-Progress_Width__SliderOpened * .5) ($Slider-Rail-Progress_Width__SliderOpened * .5) 0; }
	html.slider-opened.appearance-rtl        & { border-radius: ($Slider-Rail-Progress_Width__SliderOpened * .5) 0 0 ($Slider-Rail-Progress_Width__SliderOpened * .5); }
	html.slider-opened.appearance-ttb        & { border-radius: 0 0 ($Slider-Rail-Progress_Width__SliderOpened * .5) ($Slider-Rail-Progress_Width__SliderOpened * .5); }
	div#bibi-slider:hover                    & { background: $Slider-Rail-Progress_Color__SliderOpened__Hover; }
}

// - Edgebar Box
// ----------------------------------------------------------------------


_TRACK_STREAM_CFG_PRIVATE (track);
	if (priv->monitor) {
		g_object_unref (priv->monitor);
		priv->monitor = NULL;
	}

	if (priv->load_uri)
		brasero_io_cancel_by_base (priv->load_uri);

	if (BRASERO_TRACK_STREAM_CLASS (brasero_track_stream_cfg_parent_class)->set_source)
		BRASERO_TRACK_STREAM_CLASS (brasero_track_stream_cfg_parent_class)->set_source (track, uri);

	brasero_track_stream_cfg_get_info (BRASERO_TRACK_STREAM_CFG (track));
	brasero_track_changed (BRASERO_TRACK (track));
	return BRASERO_BURN_OK;
}

static BraseroBurnResult
brasero_track_stream_cfg_get_status (BraseroTrack *track,
				     BraseroStatus *status)
{
	BraseroTrackStreamCfgPrivate *priv;

	priv = BRASERO_TRACK_STREAM_CFG_PRIVATE (track);

	if (priv->error) {
		brasero_status_set_error (status, g_error_copy (priv->error));
		return BRASERO_BURN_ERR;
	}

	if (priv->loading) {
		if (status)
			brasero_status_set_not_ready (status,
						      -1.0,
						      _("Analysing video files"));

		return BRASERO_BURN_NOT_READY;
	}

	if (status)
		brasero_status_set_completed (status);

	return BRASERO_TRACK_CLASS (brasero_track_stream_cfg_parent_class)->get_status (track, status);
}

static void
brasero_track_stream_cfg_init (BraseroTrackStreamCfg *object)
{ }

static void
brasero_track_stream_cfg_finalize (GObject *object)
{
	BraseroTrackStreamCfgPrivate *priv;

	priv = BRASERO_TRACK_STREAM_CFG_PRIVATE (object);

	if (priv->load_uri) {
		brasero_io_cancel_by_base (priv->load_uri);

		if (io_methods->ref == 1)
			io_methods = NULL;

		brasero_io_job_base_free (priv->load_uri);
		priv->load_uri = NULL;
	}

	if (priv->monitor) {
		g_object_unref (priv->monitor);
		priv->monitor = NULL;
	}

	if (priv->error) {
		g_error_free (priv->error);
		priv->error = NULL;
	}

	G_OBJECT_CLASS (brasero_track_stream_cfg_parent_class)->finalize (object);
}

static void
brasero_track_stream_cfg_class_init (BraseroTrackStreamCfgClass *klass)
{
	GObjectClass* object_class = G_OBJECT_CLASS (klass);
	BraseroTrackClass* track_class = BRASERO_TRACK_CLASS (klass);
	BraseroTrackStreamClass *parent_class = BRASERO_TRACK_STREAM_CLASS (klass);

	g_type_class_add_private (klass, sizeof (BraseroTrackStreamCfgPrivate));

	object_class->finalize = brasero_track_stream_cfg_finalize;

	track_class->get_status = brasero_track_stream_cfg_get_status;

	parent_class->set_source = brasero_track_stream_cfg_set_source;
}

/**
 * brasero_track_stream_cfg_new:
 *
 *  Creates a new #BraseroTrackStreamCfg object.
 *
 * Return value: a #BraseroTrackStreamCfg object.
 **/

BraseroTrackStreamCfg *
brasero_track_stream_cfg_new (void)
{
	return g_object_new (BRASERO_TYPE_TRACK_STREAM_CFG, NULL);
}


            }
        }
        return this;
    }

    @Override
    public EngineeringDatumType withMetaDataProperty(Collection<MetaDataPropertyType> values) {
        if (values!= null) {
            getMetaDataProperty().addAll(values);
        }
        return this;
    }

    @Override
    public EngineeringDatumType withDescription(StringOrRefType value) {
        setDescription(value);
        return this;
    }

    @Override
    public EngineeringDatumType withDescriptionReference(ReferenceType value) {
        setDescriptionReference(value);
        return this;
    }

    @Override
    public EngineeringDatumType withIdentifier(CodeWithAuthorityType value) {
        setIdentifier(value);
        return this;
    }

    @Override
    public EngineeringDatumType withName(CodeType... values) {
        if (values!= null) {
            for (CodeType value: values) {
                getName().add(value);
            }
        }
        return this;
    }

    @Override
    public EngineeringDatumType withName(Collection<CodeType> values) {
        if (values!= null) {
            getName().addAll(values);
        }
        return this;
    }

    @Override
    public EngineeringDatumType withId(String value) {
        setId(value);
        return this;
    }

    @Override
    public EngineeringDatumType withMetaDataProperty(List<MetaDataPropertyType> value) {
        setMetaDataProperty(value);
        return this;
    }

    @Override
    public EngineeringDatumType withName(List<CodeType> value) {
        setName(value);
        return this;
    }

}
/*
 *
 *    geo-platform
 *    Rich webgis framework
 *    http://geo-platform.org
 *   ====================================================================
 *
 *   Copyright (C) 2008-2025 geoSDI Group (CNR IMAA - Potenza - ITALY).
 *
 *   This program is free software: you can redistribute it and/or modify it
 *   under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *   (at your option) any later version. This program is distributed in the
 *   hope that it will be useful, but WITHOUT ANY WARRANTY; without
 *   even the implied warranty of MERCHANTABILITY or FITNESS FOR
 *   A PARTICULAR PURPOSE. See the GNU General Public License
 *   for more details. You should have received a copy of the GNU General
 *   Public License along with this program. If not, see http://www.gnu.org/licenses/
 *
 *   ====================================================================
 *
 *   Linking this library statically or dynamically with other modules is
 *   making a combined work based on this library. Thus, the terms and
 *   conditions of the GNU General Public License cover the whole combination.
 *
 *   As a special exception, the copyright holders of this library give you permission
 *   to link this library with independent modules to produce an executable, regardless
 *   of the license terms of these independent modules, and to copy and distribute
 *   the resulting executable under terms of your choice, provided that you also meet,
 *   for each linked independent module, the terms and conditions of the license of
 *   that module. An independent module is a module which is not derived from or
 *   based on this library. If you modify this library, you may extend this exception
 *   to your version of the library, but you are not obligated to do so. If you do not
 *   wish to do so, delete this exception statement from your version.
 */
//
// Questo file è stato generato dall'architettura JavaTM per XML Binding (JAXB)


 if len(sim1_train_ids) > len(sim2_train_ids):
        sim1_train_ids = sim1_train_ids.sample(len(sim2_train_ids), replace=False, random_state=10).index
        sim2_train_ids = sim2_train_ids.index
        print(f'{sim_type1} training ids downsized to {len(sim1_train_ids)}')
        print(f'Unique sims {len(sim1_train_ids.unique())}')
    elif len(sim2_train_ids) > len(sim1_train_ids):
        sim2_train_ids = sim2_train_ids.sample(len(sim1_train_ids), replace=False, random_state=10).index
        sim1_train_ids = sim1_train_ids.index
        print(f'{sim_type2} training ids downsized to {len(sim2_train_ids)}')
        print(f'Unique sims {len(sim2_train_ids.unique())}')
    else:
        sim1_train_ids = sim1_train_ids.index
        sim2_train_ids = sim2_train_ids.index

    return sim1_train_ids, sim2_train_ids

def prepare_training_sets(features, disp):
    # Get sim_type
    sim_type = features['disp'].unique()[0]
    # Drop ticid, disp and t0 from features
    features.drop(['ticid', 'disp', 't0', 'tdur', 'tdur_per', 'depth',  'transits',
                   'median_SES', 'min_SES', 'MES_0', 'albedo', 'ptemp', 'teff', 'ptemp_stat'], axis=1, inplace=True)
    # Replace invalid values
    features.replace(np.inf, 0, inplace=True)
    features.replace("#NAME?", 0, inplace=True)
    features.fillna(0, inplace=True)
    # Ensure all types are left as numeric
    features = features.apply(pd.to_numeric)
    features.where(np.abs(features) < 1e7, 0, inplace=True)
    # Set the disposition to either 0 or 1 to use for class label training
    features['disp'] = disp
    # Add the sim_type back
    features['sim'] = sim_type

    return features

def calibration_curve(y_true, y_prob, n_bins=10):
    y_true = np.array(y_true)
    y_prob = np.array(y_prob)

    bins = np.linspace(0.0, 1.0, n_bins + 1)
    binids = np.digitize(y_prob, bins) - 1

    prob_true = []
    prob_pred = []

    for i in range(n_bins):
        mask = binids == i
        if np.any(mask):
            prob_true.append(np.mean(y_true[mask]))
            prob_pred.append(np.mean(y_prob[mask]))

    return np.array(prob_pred), np.array(prob_true)

def load_trained_GP(path_to_weights):
    from TrainingSet import GPC
    from skorch.probabilistic import GPBinaryClassifier
    import torch

    model_weights = torch.load(path_to_weights)

    gp_model = GPBinaryClassifier(
    GPC.VariationalModule,
    module__inducing_points=model_weights['variational_strategy.inducing_points'],
    criterion=torch.nn.Identity)

    gp_model.initialize()

    gp_model.module_.load_state_dict(model_weights)

    return gp_model

def load_trained_XGB(path_to_model):
    from xgboost import XGBClassifier

    xgb_model = XGBClassifier()

    xgb_model.load_model(path_to_model)

    return xgb_model

def save_pickled_model(model, path):
    with open(path, 'wb') as f:
        pickle.dump(model, f, protocol=5)

def load_pickled_model(path):
    with open(path, 'rb') as f:
        model = pickle.load(f)

    return model


) or !target:Alive() ) then continue end

        local scr = target:GetPos():ToScreen()
        if ( !scr.visible ) then continue end

        local steamID64 = target:SteamID64()
        local name = target:Nick() or "Unknown"
        local teamName = team.GetName(target:Team()) or "Unknown"
        local character = target:GetCharacter()
        if ( character ) then
            name = character:GetName() or name

            local class = character:GetClass()
            if ( class ) then
                local classTable = ax.class.instances[class]
                if ( classTable ) then
                    teamName = teamName .. " (" .. (classTable.name or "Unknown") .. ")"
                end
            end
        end
        local health = target:Health() or 0
        local maxHealth = target:GetMaxHealth() or 100
        local armor = target:Armor() or 0

        local yOffset = 0

        draw.SimpleTextOutlined(steamID64, "ax.regular.admin", scr.x, scr.y + yOffset, Color(255, 0, 0), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM, 1, Color(0, 0, 0))
        yOffset = yOffset + draw.GetFontHeight("ax.regular.admin.bold") / 1.25

        draw.SimpleTextOutlined(name, "ax.regular.admin.bold", scr.x, scr.y + yOffset, Color(0, 255, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM, 1, Color(0, 0, 0))
        yOffset = yOffset + draw.GetFontHeight("ax.regular.admin.bold") / 1.25

        draw.SimpleTextOutlined(teamName, "ax.regular.admin", scr.x, scr.y + yOffset, team.GetColor(target:Team()) or Color(255, 255, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM, 1, Color(0, 0, 0))
        yOffset = yOffset + draw.GetFontHeight("ax.regular.admin.bold") / 1.25

        local healthText = "HP: " .. tostring(health) .. " / " .. tostring(maxHealth)
        draw.SimpleTextOutlined(healthText, "ax.regular.admin", scr.x, scr.y + yOffset, Color(0, 255, 0), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM, 1, Color(0, 0, 0))
        yOffset = yOffset + draw.GetFontHeight("ax.regular.admin.bold") / 1.25

        if ( armor > 0 ) then
            local armorText = "AR: " .. tostring(armor)
            draw.SimpleTextOutlined(armorText, "ax.regular.admin", scr.x, scr.y + yOffset, Color(0, 150, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM, 1, Color(0, 0, 0))
            yOffset = yOffset + draw.GetFontHeight("ax.regular.admin.bold") / 1.25
        end

        local weapon = target:GetActiveWeapon()
        if ( IsValid(weapon) ) then
            local wepName = weapon:GetPrintName() or "Unknown"
            draw.SimpleTextOutlined(wepName, "ax.regular.admin", scr.x, scr.y + yOffset, Color(255, 255, 0), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM, 1, Color(0, 0, 0))
            yOffset = yOffset + draw.GetFontHeight("ax.regular.admin.bold") / 1.25
        end
    end
end

-- Search for Parallax Entities and draw their name
local blacklist = {
    ["ax_item"] = true,
}

function MODULE:DrawEntities()
    local client = ax.client
    if ( !IsValid(client) or !client:IsAdmin() ) then return end

    for _, ent in ipairs(ents.FindByClass("ax_*")) do
        if ( !IsValid(ent) or blacklist[ent:GetClass()] or ent:GetOwner() == client ) then continue end

        local scr =


      }

        &:nth-last-child(-n+3) {
          box-shadow: inset 0 -1px 0 var(--nsw-grey-04);
        }

        a {
          color: var(--nsw-brand-dark);
        }
      }
    }

    .nsw-main-nav__title {
      @include nsw.breakpoint(nsw.$nsw-desktop-breakpoint) {
        a {
          padding: 0;
          color: var(--nsw-brand-dark);
        }

        .nsw-material-icons {
          margin: 0 0 0 nsw.rem(12px);
        }
      }
    }

    .nsw-main-nav__sub-nav {
      @include nsw.breakpoint(nsw.$nsw-desktop-breakpoint) {
        display: none;
      }
    }
  }
}
@use '../../global/scss/tools' as nsw;

.dialog-active {
  overflow: hidden;
}

.nsw-dialog {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background-color: rgba(var(--nsw-black-rgb), 0.7);
  justify-content: center;
  align-items: flex-end;

  @include nsw.z-index('upper');

  .nsw-section--invert & {
    color: var(--nsw-text-dark);

    .nsw-icon-button {
      @include nsw.link-dark();
    }
  }

  @include nsw.breakpoint('sm') {
    align-items: center;
    padding: 0 nsw.rem(16px);
  }

  &.active {
    display: flex;
  }

  &__wrapper {
    background-color: var(--nsw-white);
    width: 100%;
    max-width: nsw.rem(736px);
    position: relative;
    padding-bottom: nsw.rem(145px);

    @include nsw.breakpoint('sm') {
      border-radius: var(--nsw-border-radius);
      align-items: center;
      max-height: 90%;
    }

    @include nsw.breakpoint('md') {
      padding-bottom: nsw.rem(81px);
    }

    @include nsw.breakpoint('lg') {
      padding-bottom: nsw.rem(113px);
    }

    .nsw-dialog--single-action & {
      padding-bottom: nsw.rem(81px);

      @include nsw.breakpoint('lg') {
        padding-bottom: nsw.rem(113px);
      }
    }
  }

  &__container {
    height: 100%;
    max-height: calc(100vh - #{nsw.rem(145px)});
    overflow-y: auto;

    @include nsw.breakpoint('sm') {
      max-height: calc(90vh - #{nsw.rem(145px)});
    }

    @include nsw.breakpoint('md') {
      max-height: calc(90vh - #{nsw.rem(81px)});
    }

    @include nsw.breakpoint('lg') {
      max-height: calc(90vh - #{nsw.rem(113px)});
    }

    .nsw-dialog--single-action & {
      max-height: calc(100vh - #{nsw.rem(81px)});

      @include nsw.breakpoint('sm') {
        max-height: calc(90vh - #{nsw.rem(81px)});
      }

      @include nsw.breakpoint('lg') {
        max-height: calc(90vh - #{nsw.rem(113px)});
      }
    }
  }

  &__top {
    border-bottom: 1px solid var(--nsw-grey-04);
    display: flex;
  }

  &__title {
    padding: nsw.rem(16px);
    width: 100%;

    @include nsw.breakpoint('lg') {
      padding: nsw.rem(32px);
    }


roughnessFactor(){return this[Sy].roughnessFactor}get baseColorTexture(){return this[tx]}get metallicRoughnessTexture(){return this[ex]}setBaseColorFactor(t){for(const e of this[Qy])e.color.fromArray(t),e.opacity=t[3];this[Sy].baseColorFactor=t,this[Ty]()}setMetallicFactor(t){for(const e of this[Qy])e.metalness=t;this[Sy].metallicFactor=t,this[Ty]()}setRoughnessFactor(t){for(const e of this[Qy])e.roughness=t;this[Sy].roughnessFactor=t,this[Ty]()}}var ix;const rx=Symbol("pbrMetallicRoughness"),sx=Symbol("normalTexture"),ax=Symbol("occlusionTexture"),ox=Symbol("emissiveTexture"),lx=Symbol("backingThreeMaterial"),hx=Symbol("applyAlphaCutoff"),cx=Symbol("lazyLoadGLTFInfo"),ux=Symbol("initialize"),dx=Symbol("getLoadedMaterial"),px=Symbol("ensureMaterialIsLoaded"),mx=Symbol("gltfIndex"),fx=Symbol("setActive"),gx=Symbol("variantIndices"),vx=Symbol("isActive"),yx=Symbol("variantSet"),xx=Symbol("modelVariants");class bx extends Ey{constructor(t,e,n,i,r,s,a,o){super(t,n,a),this[ix]=new Set,this[mx]=i,this[vx]=r,this[xx]=s,null==o?this[ux](e):this[cx]=o}get[(ix=yx,lx)](){return this[My].values().next().value}[ux](t){const e=this[Ty],n=this[Sy],i=this[My];n.extensions&&n.extensions.KHR_materials_pbrSpecularGlossiness&&console.warn(`Material ${n.name} uses a deprecated extension\n          "KHR_materials_pbrSpecularGlossiness", please use\n          "pbrMetallicRoughness" instead. Specular Glossiness materials are\n          currently supported for rendering, but not for our scene-graph API,\n          nor for auto-generation of USDZ for Quick Look.`),null==n.pbrMetallicRoughness&&(n.pbrMetallicRoughness={}),this[rx]=new nx(e,t,n.pbrMetallicRoughness,i),null==n.emissiveFactor&&(n.emissiveFactor=[0,0,0]),null==n.doubleSided&&(n.doubleSided=!1),null==n.alphaMode&&(n.alphaMode="OPAQUE"),null==n.alphaCutoff&&(n.alphaCutoff=.5);const{normalTexture:r,occlusionTexture:s,emissiveTexture:a}=n,{normalMap:o,aoMap:l,emissiveMap:h}=i.values().next().value;this[sx]=new Ky(e,Jy.Normal,o,i,t,r||null),this[ax]=new Ky(e,Jy.Occlusion,l,i,t,s||null),this[ox]=new Ky(e,Jy.Emissive,h,i,t,a||null)}async[dx](){if(null!=this[cx]){const{set:t,material:e}=await this[cx].doLazyLoad();return this[My]=t,this[ux](this[cx].gltf),this[cx]=void 0,this.ensureLoaded=async()=>{},e}return this[My].values().next().value}[px](){if(null!=this[cx])throw new Error(`Material "${this.name}" has not been loaded, call 'await\n    myMaterial.ensureLoaded()' before using an unloaded material.`)}async ensureLoaded(){await this[dx]()}get isLoaded(){return null


 published by the Free Software Foundation.

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include "app/cmd/copy_frame.h"

#include "app/cmd/add_frame.h"
#include "app/cmd/copy_cel.h"
#include "app/cmd/set_frame_duration.h"
#include "doc/sprite.h"
#include "doc/layer.h"

namespace app {
namespace cmd {

using namespace doc;

CopyFrame::CopyFrame(Sprite* sprite, frame_t fromFrame, frame_t newFrame)
  : WithSprite(sprite)
  , m_fromFrame(fromFrame)
  , m_newFrame(newFrame)
{
}

void CopyFrame::onExecute()
{
  Sprite* sprite = this->sprite();
  frame_t fromFrame = m_fromFrame;
  int msecs = sprite->frameDuration(fromFrame);

  executeAndAdd(new cmd::AddFrame(sprite, m_newFrame));
  executeAndAdd(new cmd::SetFrameDuration(sprite, m_newFrame, msecs));

  if (fromFrame >= m_newFrame)
    ++fromFrame;

  for (int i=0; i<sprite->countLayers(); ++i) {
    Layer* layer = sprite->layer(i);
    if (layer->isImage())  {
      executeAndAdd(new cmd::CopyCel(
          static_cast<LayerImage*>(layer), fromFrame,
          static_cast<LayerImage*>(layer), m_newFrame, layer->isContinuous()));
    }
  }
}

} // namespace cmd
} // namespace app
// Aseprite
// Copyright (C) 2001-2016  David Capello
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include "app/cmd/copy_region.h"

#include "doc/image.h"

#include <algorithm>

namespace app {
namespace cmd {

CopyRegion::CopyRegion(Image* dst, const Image* src,
                       const gfx::Region& region,
                       const gfx::Point& dstPos,
                       bool alreadyCopied)
  : WithImage(dst)
  , m_size(0)
  , m_alreadyCopied(alreadyCopied)
{
  // Create region to save/swap later
  for (const auto& rc : region) {
    gfx::Clip clip(
      rc.x+dstPos.x, rc.y+dstPos.y,
      rc.x, rc.y, rc.w, rc.h);
    if (!clip.clip(
          dst->width(), dst->height(),
          src->width(), src->height()))
      continue;

    m_region.createUnion(m_region, gfx::Region(clip.dstBounds()));
  }

  // Save region pixels
  for (const auto& rc : m_region) {
    for (int y=0; y<rc.h; ++y) {
      m_stream.write(
        (const char*)src->getPixelAddress(rc.x-dstPos.x,
                                          rc.y-dstPos.y+y),
        src->getRowStrideSize(rc.w));
    }
  }
  m_size = size_t(m_stream.tellp());
}

void CopyRegion::onExecute()
{
  if (!m_alreadyCopied)
    swap();
}

void CopyRegion::onUndo()
{
  swap();
}

void CopyRegion::onRedo()
{
  swap();
}

void CopyRegion::swap()
{
  Image* image = this->image();

  // Save current image region in "tmp" stream
  std::stringstream tmp;
  for (const auto& rc : m_region)
    for (int y=0; y<rc.h; ++y)
      tmp.write(
        (const char*)image->getPixelAddress(rc.x, rc.y+y),
        image->getRowStrideSize(rc


/* =========================================================================
 * This file is part of six-c++
 * =========================================================================
 *
 * (C) Copyright 2004 - 2014, MDA Information Systems LLC
 *
 * six-c++ 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 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this program; If not,
 * see <http://www.gnu.org/licenses/>.
 *
 */
#ifndef __SIX_READ_CONTROL_FACTORY_H__
#define __SIX_READ_CONTROL_FACTORY_H__
#pragma once

#include <memory>

#include "six/ReadControl.h"

namespace six
{

struct ReadControlCreator
{
    virtual ~ReadControlCreator() = default;

    virtual six::ReadControl* newReadControl() const = 0;
    virtual void newReadControl(std::unique_ptr<six::ReadControl>& result) const
    {
        result.reset(newReadControl());
    }

    virtual bool supports(const std::string& filename) const = 0;

protected:
    ReadControlCreator() = default;
};

class ReadControlRegistry
{
    std::list<std::unique_ptr<ReadControlCreator>> mCreators;
public:
    ReadControlRegistry() = default;
    virtual ~ReadControlRegistry() = default;

    /**
     * Add a known creator to the registry. The registry takes ownership.
     */
    inline void addCreator(std::unique_ptr<ReadControlCreator>&& creator)
    {
        mCreators.push_back(std::move(creator));
    }
    inline void addCreator(ReadControlCreator* creator)
    {
        addCreator(std::unique_ptr<ReadControlCreator>(creator));
    }

    virtual six::ReadControl* newReadControl(const std::string& filename) const;
    virtual void newReadControl(const std::string& filename, std::unique_ptr<six::ReadControl>& result) const;

};

struct ReadControlFactory final
{
    ReadControlFactory() = delete;
    ~ReadControlFactory() = delete;
    ReadControlFactory(const ReadControlFactory&) = delete;
    ReadControlFactory(ReadControlFactory&&) = delete;
    ReadControlFactory& operator=(const ReadControlFactory&) = delete;
    ReadControlFactory& operator=(ReadControlFactory&&) = delete;

    static ReadControlRegistry& getInstance();
};

}

#endif


 main() async {
  File content = File("g.txt");
  List<String> list = await content.readAsLines();
  //读取到文件的顶点数量以及
  int v = int.parse(list[0].split(" ")[0]);
  int e = int.parse(list[0].split(" ")[1]);
  Graph graph = Graph(v, e, list);
  FindCutPoints fc = new FindCutPoints(graph);
  print("Cut Points in g : " + fc.result().toString());

  File content2 = File("g2.txt");
  List<String> list2 = await content2.readAsLines();
  //读取到文件的顶点数量以及
  int v2 = int.parse(list2[0].split(" ")[0]);
  int e2 = int.parse(list2[0].split(" ")[1]);
  Graph graph2 = Graph(v2, e2, list2);
  FindCutPoints fc2 = new FindCutPoints(graph2);
  print("Cut Points in g2 : " + fc2.result().toString());

  File content3 = File("g3.txt");
  List<String> list3 = await content3.readAsLines();
  //读取到文件的顶点数量以及
  int v3 = int.parse(list3[0].split(" ")[0]);
  int e3 = int.parse(list3[0].split(" ")[1]);
  Graph graph3 = Graph(v3, e3, list3);
  FindCutPoints fc3 = new FindCutPoints(graph3);
  print("Cut Points in g3 : " + fc3.result().toString());

  File content5 = File("tree.txt");
  List<String> list5 = await content5.readAsLines();
  //读取到文件的顶点数量以及
  int v5 = int.parse(list5[0].split(" ")[0]);
  int e5 = int.parse(list5[0].split(" ")[1]);
  Graph graph5 = Graph(v5, e5, list5);
  FindCutPoints fc4 = new FindCutPoints(graph5);
  print("Cut Points in tree : " + fc4.result().toString());
}
//import 'ShellSort.dart';

class SortingHelper {
  SortingHelper() {}

  static bool isSorted(List? arr) {
  for (int i = 1; i < arr!.length; i++)
  if (arr[i - 1].compareTo(arr[i]) > 0) return false;
  return true;
  }

  static sortTest(String sortname, List? arr) {
  var now = new DateTime.now();
  num startTime = now.millisecondsSinceEpoch;

  if (sortname == "SelectionSort") {
  //  SelectionSort.sort(arr);
  } else if (sortname == "InsertionSort") {
//  InsertionSort.sort(arr);
  } else if (sortname == "MergeSort") {
//  MergeSort.sort(arr);
  } else if (sortname == "MergeSortBU") {
//  MergeSort.sortBU(arr);
  } else if (sortname == "QuickSort") {
//  QuickSort.sort(arr);
  } else if (sortname == "QuickSort2Ways") {
//  QuickSort.sort2ways(arr);
  } else if (sortname == "QuickSort3Ways") {
//  QuickSort.sort3ways(arr);
  } else if (sortname == "QuickSort3Ways") {
//  QuickSort.sort3ways(arr);
  } else if (sortname == "HeapSort") {
//  HeapSort.sort(arr);
  } else if (sortname == "BubbleSort") {
//    BubbleSort.sort(arr);
  } else if (sortname == "ShellSort") {
//  ShellSort.sort(arr);
  }
  var endNow = new DateTime.now();
  num endTime = endNow.m


buffList = {
								8001,
								8007
							}
						},
						{
							monsterTemplateID = 10041009,
							score = 20,
							delay = 1,
							moveCast = true,
							corrdinate = {
								10,
								0,
								30
							},
							buffList = {
								8001,
								8007
							}
						}
					},
					airFighter = {
						{
							interval = 10,
							onceNumber = 3,
							totalNumber = 3,


B509B4 800D9814 0C00084C */  jal   osSyncPrintf
/* B509B8 800D9818 24848964 */   addiu $a0, %lo(D_80148964) # addiu $a0, $a0, -0x769c
/* B509BC 800D981C 10000006 */  b     .L800D9838
/* B509C0 800D9820 97C20002 */   lhu   $v0, 2($fp)
.L800D9824:
/* B509C4 800D9824 11000004 */  beqz  $t0, .L800D9838
/* B509C8 800D9828 3C048015 */   lui   $a0, %hi(D_8014897C) # $a0, 0x8015
/* B509CC 800D982C 0C00084C */  jal   osSyncPrintf
/* B509D0 800D9830 2484897C */   addiu $a0, %lo(D_8014897C) # addiu $a0, $a0, -0x7684
/* B509D4 800D9834 97C20002 */  lhu   $v0, 2($fp)
.L800D9838:
/* B509D8 800D9838 AE6200BC */  sw    $v0, 0xbc($s3)
/* B509DC 800D983C 100004FB */  b     .L800DAC2C
/* B509E0 800D9840 00404025 */   move  $t0, $v0
glabel L800D9844
/* B509E4 800D9844 11000003 */  beqz  $t0, .L800D9854
/* B509E8 800D9848 3C048015 */   lui   $a0, %hi(D_80148998) # $a0, 0x8015
/* B509EC 800D984C 0C00084C */  jal   osSyncPrintf
/* B509F0 800D9850 24848998 */   addiu $a0, %lo(D_80148998) # addiu $a0, $a0, -0x7668
.L800D9854:
/* B509F4 800D9854 8FD90004 */  lw    $t9, 4($fp)
/* B509F8 800D9858 02602025 */  move  $a0, $s3
/* B509FC 800D985C 97C50002 */  lhu   $a1, 2($fp)
/* B50A00 800D9860 0320F809 */  jalr  $t9
/* B50A04 800D9864 00000000 */  nop
/* B50A08 800D9868 100004F0 */  b     .L800DAC2C
/* B50A0C 800D986C 8E6800BC */   lw    $t0, 0xbc($s3)
.L800D9870:
/* B50A10 800D9870 110004EE */  beqz  $t0, .L800DAC2C
/* B50A14 800D9874 3C048015 */   lui   $a0, %hi(D_801489BC) # $a0, 0x8015
/* B50A18 800D9878 248489BC */  addiu $a0, %lo(D_801489BC) # addiu $a0, $a0, -0x7644
/* B50A1C 800D987C 8FC60004 */  lw    $a2, 4($fp)
/* B50A20 800D9880 0C00084C */  jal   osSyncPrintf
/* B50A24 800D9884 97C70002 */   lhu   $a3, 2($fp)
/* B50A28 800D9888 100004E8 */  b     .L800DAC2C
/* B50A2C 800D988C 8E6800BC */   lw    $t0, 0xbc($s3)
.L800D9890:
glabel L800D9890
/* B50A30 800D9890 8E7100C0 */  lw    $s1,


; log_not_found off; expires max;
    }
}
```

E diamine, tutto, dalla radice del documento in giù, è tecnicamente opzionale. Utile e consigliato, ma non strettamente necessario per il funzionamento del sito.

In ogni caso, salvate e chiudete il file, quindi andate nella directory `sites-enabled`:

```bash
cd sites-enabled
```

Ora, create un collegamento simbolico al file di configurazione appena creato nella cartella `sites-available`:

```bash
ln -s ../sites-available/test.server.site1.conf
```

Verificate la configurazione con il comando `nginx -t` e se ricevete un messaggio che dice che tutto è a posto, ricaricate il server:

```bash
systemctl restart nginx
```

Puntate quindi il browser sul dominio che state usando per questo primo sito (nel mio caso: site1.server.test) e cercate il messaggio "Questo è il sito 1" che abbiamo inserito nel file HTML. Se avete installato `curl` sul vostro sistema, potete eseguire `curl site1.server.test` e vedere se il codice HTML viene caricato nel vostro terminale.

!!! Note "Nota"

    Alcuni browser (con tutte le migliori intenzioni) obbligano a utilizzare HTTPS quando si digita il dominio del server nella barra degli indirizzi. Se non è configurato l'HTTPS, si otterranno solo errori.

    Assicuratevi di specificare manualmente "http://" nella barra degli indirizzi del browser per evitare questo problema. Se non funziona, cancellate la cache o utilizzate un browser meno esigente per questa parte del test. Io raccomando [Min](https://minbrowser.org).

Se *tutto* va bene, *ripetete i passaggi precedenti, cambiando man mano i nomi dei file e il contenuto dei file di configurazione*. da "sito1" a "sito2" e così via. Una volta che i file di configurazione e i link simbolici per il sito 1 e il sito 2 sono stati riavviati, Nginx dovrebbe avere questo aspetto:

![Una schermata dei due siti web di prova affiancati](nginx/images/multisite-nginx.png)

!!! Note

    È anche possibile creare collegamenti dall'esterno della directory abilitata ai siti con la forma lunga del comando `ln -s`. Il risultato sarà `ln -s [file sorgente] [link]`.

    In questo contesto si tratta di:

    ```bash
    ln -s /etc/nginx/sites-available/test.server.site1.conf /etc/nginx/sites-enabled/test.server.site1.conf
    ```

### Disabilitare un sito web

Se è necessario interrompere uno dei siti web per lavorarci su prima di riprenderlo, è sufficiente eliminare il collegamento simbolico in sites-enabled:

```bash
rm /etc/nginx/sites-enabled/test.server.site1.conf
```

Quindi riavviare Nginx come al solito. Per riportare il sito online, dovrai ricreare il link simbolico e riavviare di nuovo Nginx.

## Opzionale: Modificare Il Tuo File Hosts

Questa parte è decisamente per i neofiti. Tutti gli altri possono probabilmente saltare.

Quindi questa sezione si applica *solo* se state provando questa guida in un ambiente di sviluppo locale. Se cioè il server di prova viene eseguito sulla propria workstation o su un'altra macchina della


rolling = true;
        mNestedScrollingChildHelper.setNestedScrollingEnabled(enabled);
    }

    @Override
    public boolean isNestedScrollingEnabled() {
        return mNestedScrollingChildHelper.isNestedScrollingEnabled();
    }

    @Override
    public boolean startNestedScroll(int axes) {
        return mNestedScrollingChildHelper.startNestedScroll(axes);
    }

    @Override
    public void stopNestedScroll() {
        mNestedScrollingChildHelper.stopNestedScroll();
    }

    @Override
    public boolean hasNestedScrollingParent() {
        return mNestedScrollingChildHelper.hasNestedScrollingParent();
    }

    @Override
    public boolean dispatchNestedScroll(int dxConsumed, int dyConsumed, int dxUnconsumed,
                                        int dyUnconsumed, int[] offsetInWindow) {
        return mNestedScrollingChildHelper.dispatchNestedScroll(dxConsumed, dyConsumed,
                dxUnconsumed, dyUnconsumed, offsetInWindow);
    }

    @Override
    public boolean dispatchNestedPreScroll(int dx, int dy, int[] consumed, int[] offsetInWindow) {
        return mNestedScrollingChildHelper.dispatchNestedPreScroll(
                dx, dy, consumed, offsetInWindow);
    }

    @Override
    public boolean dispatchNestedFling(float velocityX, float velocityY, boolean consumed) {
        return mNestedScrollingChildHelper.dispatchNestedFling(velocityX, velocityY, consumed);
    }

    @Override
    public boolean dispatchNestedPreFling(float velocityX, float velocityY) {
        return mNestedScrollingChildHelper.dispatchNestedPreFling(velocityX, velocityY);
    }
    //</editor-fold>

    //</editor-fold>

    //<editor-fold desc="开放接口 open interface">
    @Override
    public SmartRefreshLayout setFooterHeight(float heightDp) {
        return setFooterHeightPx(dp2px(heightDp));
    }

    @SuppressLint("RestrictedApi")
    @Override
    public SmartRefreshLayout setFooterHeightPx(int heightPx) {
        if (mFooterHeightStatus.canReplaceWith(DimensionStatus.CodeExact)) {
            mFooterHeight = heightPx;
            mFooterExtendHeight = (int) Math.max((heightPx * (mFooterMaxDragRate - 1)), 0);
            mFooterHeightStatus = DimensionStatus.CodeExactUnNotify;
            if (mRefreshFooter != null) {
                mRefreshFooter.getView().requestLayout();
            }
        }
        return this;
    }

    @Override
    public SmartRefreshLayout setHeaderHeight(float heightDp) {
        return setHeaderHeightPx(dp2px(heightDp));
    }

    @SuppressLint("RestrictedApi")
    @Override
    public SmartRefreshLayout setHeaderHeightPx(int heightPx) {
        if (mHeaderHeightStatus.canReplaceWith(DimensionStatus.CodeExact)) {
            mHeaderHeight = heightPx;
            mHeaderExtendHeight = (int) Math.max((heightPx * (mHeaderMaxDragRate - 1)), 0);
            mHeaderHeightStatus = DimensionStatus.CodeExactUnNotify;
            if (mRefreshHeader != null) {
                mRefreshHeader.getView().requestLayout();
            }
        }
        return this;
    }

    @Override
    public SmartRefreshLayout setDragRate(float rate) {
        this.mDragRate = rate;
        return this;
    }

    /**
     * 设置下拉最大高度和Hea


c2s = {
        rate = "512kb/s";
    };
}

modules_disabled = {
    'offline';
    'pubsub';
    'register';
};

allow_registration = false;
authentication = 'internal_hashed'
storage = 'internal'

asap_accepted_issuers = { "{{ join "\",\"" (splitList "," .Env.JWT_ACCEPTED_ISSUERS) }}" }
asap_accepted_audiences = { "{{ join "\",\"" (splitList "," .Env.JWT_ACCEPTED_AUDIENCES) }}" }

consider_websocket_secure = true;
consider_bosh_secure = true;
bosh_max_inactivity = 60;

----------- Virtual hosts -----------
VirtualHost 'v{{ $VISITOR_INDEX }}.{{ $VISITORS_XMPP_DOMAIN }}'
    authentication = 'jitsi-anonymous'
    ssl = {
        key = "/config/certs/v{{ $VISITOR_INDEX }}.{{ $VISITORS_XMPP_DOMAIN }}.key";
        certificate = "/config/certs/v{{ $VISITOR_INDEX }}.{{ $VISITORS_XMPP_DOMAIN }}.crt";
    }
    modules_enabled = {
      'bosh';
      'ping';
      'external_services';
      'smacks';
      'jiconop';
      'conference_duration';
      {{ if $ENABLE_XMPP_WEBSOCKET -}}
      "websocket";
      "smacks"; -- XEP-0198: Stream Management
      {{ end -}}
      {{ if .Env.XMPP_MODULES }}
      "{{ join "\";\n\"" (splitList "," .Env.XMPP_MODULES) }}";
      {{ end }}
    }
    main_muc = '{{ $VISITORS_MUC_PREFIX }}.v{{ $VISITOR_INDEX }}.{{ $VISITORS_XMPP_DOMAIN }}';
    shard_name = "{{ $SHARD_NAME }}"
    region_name = "{{ $REGION_NAME }}"
    release_number = "{{ $RELEASE_NUMBER }}"

    {{ if .Env.XMPP_CONFIGURATION -}}
    {{ join "\n    " (splitList "," .Env.XMPP_CONFIGURATION) }}
    {{- end }}

VirtualHost '{{ $XMPP_AUTH_DOMAIN }}'
    modules_enabled = {
      'limits_exception';
      'ping';
      'smacks';
    }
    authentication = 'internal_hashed'
    smacks_hibernation_time = 15;

Component '{{ $VISITORS_MUC_PREFIX }}.v{{ $VISITOR_INDEX }}.{{ $VISITORS_XMPP_DOM


.started) {
      this.stop();
    }
    this.noise = p5sound.audiocontext.createBufferSource();
    this.noise.buffer = this.buffer;
    this.noise.loop = true;
    this.noise.connect(this.output);
    var now = p5sound.audiocontext.currentTime;
    this.noise.start(now);
    this.started = true;
  };
  /**
   *  Stop the noise.
   *
   *  @method  stop
   */
  p5.Noise.prototype.stop = function () {
    var now = p5sound.audiocontext.currentTime;
    if (this.noise) {
      this.noise.stop(now);
      this.started = false;
    }
  };
  /**
   *  Pan the noise.
   *
   *  @method  pan
   *  @param  {Number} panning Number between -1 (left)
   *                           and 1 (right)
   *  @param  {Number} timeFromNow schedule this event to happen
   *                                seconds from now
   */
  /**
   *  Set the amplitude of the noise between 0 and 1.0. Or,
   *  modulate amplitude with an audio signal such as an oscillator.
   *
   *  @param  {Number|Object} volume amplitude between 0 and 1.0
   *                                     or modulating signal/oscillator
   *  @param {Number} [rampTime] create a fade that lasts rampTime
   *  @param {Number} [timeFromNow] schedule this event to happen
   *                                seconds from now
   */
  /**
   *  Send output to a p5.sound or web audio object
   *
   *  @method  connect
   *  @param  {Object} unit
   */
  /**
   *  Disconnect all output.
   *
   *  @method disconnect
   */
  p5.Noise.prototype.dispose = function () {
    var now = p5sound.audiocontext.currentTime;
    // remove reference from soundArray
    var index = p5sound.soundArray.indexOf(this);
    p5sound.soundArray.splice(index, 1);
    if (this.noise) {
      this.noise.disconnect();
      this.stop(now);
    }
    if (this.output) {
      this.output.disconnect();
    }
    if (this.panner) {
      this.panner.disconnect();
    }
    this.output = null;
    this.panner = null;
    this.buffer = null;
    this.noise = null;
  };
}(master);
var audioin;
audioin = function () {
  'use strict';
  var p5sound = master;
  var CustomError = errorHandler;
  /**
   *
Get audio from an input, i.e. your computer's microphone.

   *
   *
Turn the mic on/off with the start() and stop() methods. When the mic
   *  is on, its volume can be measured with getLevel or by connecting an
   *  FFT object.

   *
   *
If you want to hear the AudioIn, use the .connect() method.
   *  AudioIn does not connect to p5.sound output by default to prevent
   *  feedback.

   *
   *
Note: This uses the getUserMedia/
   *  Stream API, which is not supported by certain browsers.

   *
   *  @class p5.AudioIn
   *  @constructor
   *  @return {Object} AudioIn
   *  @example
   *

   *  var mic;
   *  function setup(){
   *    mic = new p5.AudioIn()
   *    mic.start();
   *  }
   *  function draw(){
   *    background(0);
   *    micLevel = mic.getLevel();
   *    ellipse(width/2, constrain(height-micLevel*height*5, 0, height), 10, 10);
   *  }
   *

   */
  p5.AudioIn = function () {
    // set up audio input
    this.input = p5sound.audiocontext.createGain();
    this.output = p5sound.audiocontext.createGain();
    this.stream = null;
    this.mediaStream = null;
    this.currentSource = 0;
    /**


val CREATOR: Parcelable.Creator<StickerInfo> = object : Parcelable.Creator<StickerInfo> {
			override fun createFromParcel(parcel: Parcel) = StickerInfo(parcel)

			override fun newArray(size: Int) = arrayOfNulls<StickerInfo>(size)
		}
	}
}package me.tagavari.airmessage.util

import java.util.function.BiFunction
import java.util.function.Consumer
import java.util.function.Function

/**
 * A class that either contains an object of one type or the other
 */
class Union<A, B> private constructor(private val itemA: A?, private val itemB: B?) {
	/**
	 * Gets item A from this union
	 */
	val a: A
		get() = itemA!!

	/**
	 * Gets item B from this union
	 */
	val b: B
		get() = itemB!!

	/**
	 * Gets if this union is of type A
	 */
	val isA get() = itemA != null

	/**
	 * Gets if this union is of type B
	 */
	val isB get() = itemB != null

	/**
	 * Runs a given runnable, depending on the type in this union
	 * @param runnableA The runnable to run if the type is A
	 * @param runnableB The runnable to run if the item is B
	 */
	fun run(runnableA: Runnable, runnableB: Runnable) {
		if(isA) runnableA.run() else runnableB.run()
	}

	/**
	 * Runs a given consumer, depending on the type in this union
	 * @param consumerA The consumer to run if the type is A
	 * @param consumerB The consumer to run if the item is B
	 */
	fun accept(consumerA: Consumer<A>, consumerB: Consumer<B>) {
		if(isA) consumerA.accept(a) else consumerB.accept(b)
	}

	/**
	 * Applies a given transformation to an item, depending on this union's type, and returns it
	 * @param functionA The function to run if the type is A
	 * @param functionB The function to run if the item is B
	 * @param <I> The input type
	 * @param <R> The return type
	</R></I> */
	fun <I, R> apply(input: I, functionA: BiFunction<I, A, R>, functionB: BiFunction<I, B, R>): R {
		return if(isA) functionA.apply(input, a) else functionB.apply(input, b)
	}

	/**
	 * Maps this union type's contents to a single type
	 * @param mapA The function used to map item A
	 * @param mapB The function used to map item B
	 * @param <R> The return type
	 * @return The mapped value
	</R> */
	fun <R> map(mapA: Function<A, R>, mapB: Function<B, R>): R {
		return if(isA) mapA.apply(a) else mapB.apply(b)
	}

	companion object {
		/**
		 * Creates a union of item A
		 * @param item The item to add
		 * @param <A> This union type's item A
		 * @param <B> This union type's item B
		 * @return A union of type A/B containing A */
		@kotlin.jvm.JvmStatic
		fun <A, B> ofA(item: A): Union<A, B> {
			return Union(item, null)
		}

		/**
		 * Creates a union of item B
		 * @param item The item to add
		 * @param <A> This union type's item A
		 * @param <B> This union type's item B
		 * @return A union of type A/B containing B */
		@kotlin.jvm.JvmStatic
		fun <A, B> ofB(item: B): Union<A, B> {
			return Union(null, item)
		}
	}
}package me.tagavari.airmessage.helper

import android.app.Activity
import android.content.res.Resources
import android.view.View
import android.view.ViewGroup.MarginLayoutParams
import me.tagavari.airmessage.R

object WindowHelper {
	/**
	 * Gets the maximum


Featured｜HelloGitHub" />

Game Cheats Manager 为玩家提供了一个高效管理单机游戏修改器的一站式解决方案。它允许用户在一个便捷的位置浏览、下载和管理所有修改器。每个修改器，通常是一个独立的可执行文件，都可以通过应用程序直接启动或删除，从而简化您的游戏体验。

## 使用

1. **浏览修改器**: 在左侧使用搜索栏或浏览列表查找已下载的修改器。双击或点击 `启动` 按钮以启动修改器；点击 `删除` 以删除修改器。
2. **下载修改器**: 在右侧栏中，使用关键词搜索并按下 `回车` 键以浏览可用修改器，双击所需的匹配项以直接下载。修改器下载路径显示于右侧栏底部，您可以点击右侧的 `...` 来更改它。
3. **修改器管理**: `修改器管理` 面板为您提供了每个修改器来源的所有设置。您可以找到诸如自动更新修改器及修改器检索数据或更改下载服务器等设置。
4. **选项**: `选项` 菜单栏包含以下功能：
   1. **设置**: 调整诸如主题和语言等设置。
   2. **导入修改器**: 从文件选择窗口选择您想要导入的修改器。导入的修改器不支持自动更新。
   3. **打开修改器下载路径**: 查看修改器下载文件夹。
   4. **添加路径至白名单**: 将修改器下载路径添加到 Windows Defender 排除项中。如果您安装了其他杀毒软件，则可以手动执行此操作。
   5. **关于**: 查看应用版本和项目相关链接。

## 安装

1. **下载安装程序**: 前往 [latest release](https://github.com/dyang886/Game-Cheats-Manager/releases) 并下载适用于 Windows 的安装程序 (64-bit)。
2. **运行安装程序**: 运行安装程序，并按照说明来安装 Game Cheats Manager。
3. **启动应用程序**: 从应用程序文件夹或开始菜单中打开 Game Cheats Manager。

## 支持

如遇问题、功能请求或想参与项目开发，请访问 [GitHub repository](https://github.com/dyang886/Game-Cheats-Manager)。

以下是捐助方式:

|                             微信                             |                          支付宝                          |                          QQ                          |
| :----------------------------------------------------------: | :------------------------------------------------------: | :--------------------------------------------------: |
|  |


	add	x4, x21, x4, lsl 3
	b	.L340
	.p2align 3
.L341:
	ldr	x1, [x0, 28168]
	add	x0, x0, 8
	ldr	w3, [x1, 644]
	cmp	w20, w3
	beq	.L338
.L340:
	cmp	x4, x0
	bne	.L341
.L336:
	mov	x3, x22
	mov	w2, w19
	mov	w1, w20
	mov	x0, x21
	bl	MarkPicLTRef
	ldp	x19, x20, [sp, 16]
	ldp	x21, x22, [sp, 32]
	ldp	x29, x30, [sp], 48
	ret
	.p2align 3
.L334:
	add	x0, x21, 24576
	ldr	w2, [x22, 656]
	lsl	w2, w2, 1
	ldr	w1, [x0, 3720]
	sub	w19, w2, w19
	cbz	w1, .L336
	sub	w5, w1, #1
	add	x0, x0, 3456
	add	x5, x5, 3505
	add	x5, x21, x5, lsl 3
	.p2align 2
.L344:
	ldr	x1, [x0]
	add	x0, x0, 8
	ldrb	w3, [x1, 2]
	tbz	x3, 0, .L342
	ldr	w4, [x1, 720]
	and	w4, w4, 16776960
	cmp	w4, 65536
	beq	.L354
.L342:
	tbz	x3, 1, .L343
	ldr	w3, [x1, 760]
	and	w3, w3, 16776960
	cmp	w3, 65536
	beq	.L355
.L343:
	cmp	x0, x5
	bne	.L344
	b	.L336
	.p2align 3
.L354:
	ldr	w2, [x1, 728]
	cmp	w2, w19
	bne	.L342
	mov	w3, w20
	mov	w2, 1
	mov	x0, x21
	bl	UnMarkLTFldByFrmIdx
	b	.L336
	.p2align 3
.L355:
	ldr	w2, [x1, 768]
	cmp	w2, w19
	bne	.L343
	mov	w3, w20
	mov	w2, 2
	mov	x0, x21
	bl	UnMarkLTFldByFrmIdx
	b	.L336
	.p2align 3
.L338:
	mov	x0, x21
	bl	UnMarkFrameStoreRef
	b	.L336
	.size	MarkSTToLTRef, .-MarkSTToLTRef
	.global	_mcount
	.align	2
	.p2align 3,,7
	.global	UpdateMaxLTFrmIdx
	.type	UpdateMaxLTFrmIdx, %function
UpdateMaxLTFrmIdx:
	stp	x29, x30, [sp, -48]!
	add	x29, sp, 0
	stp	x19, x20, [sp, 16]
	stp	x21, x22, [sp, 32]
	mov	x22, x0
	mov	x0, x30
	add	x21, x22, 24576
	mov	w20, w1
	bl	_mcount
	ldr	w0, [x21, 3724]
	str	w20


.amis-scope .cxd-DropDown-menu > li.cxd-DropDown-divider {
  height: 0.0625rem;
  margin: 0.5625rem 0;
  overflow: hidden;
  background: #e8e9eb;
  padding: 0;
}

.amis-scope .cxd-DropDown-menuItem.cxd-DropDown-groupTitle,
.amis-scope .cxd-DropDown-menu > li.cxd-DropDown-groupTitle {
  height: inherit;
  font-size: 12px;
  padding: 0.25rem 0.25rem;
  padding-left: 0.5rem;
  color: #848b99;
  flex-grow: 1;
  cursor: default;
}

.amis-scope .cxd-DropDown-menuItem.cxd-DropDown-groupTitle:hover,
.amis-scope .cxd-DropDown-menu > li.cxd-DropDown-groupTitle:hover {
  background: none;
}

.amis-scope .cxd-DropDown-menuItem.cxd-DropDown-groupTitle span,
.amis-scope .cxd-DropDown-menu > li.cxd-DropDown-groupTitle span {
  white-space: nowrap;
}

.amis-scope .cxd-DropDown-menuItem.cxd-DropDown-groupTitle ~ .cxd-DropDown-button,
.amis-scope .cxd-DropDown-menu > li.cxd-DropDown-groupTitle ~ .cxd-DropDown-button {
  padding-left: 1.25rem;
}

.amis-scope .cxd-DropDown-menu > li a {
  color: inherit;
  display: block;
  text-decoration: none;
}

.amis-scope .cxd-DropDown-popover {
  border: none;
  box-shadow: none;
}

.amis-scope .cxd-DropDown > .cxd-Button {
  min-width: unset;
}

.amis-scope .cxd-Each-placeholder {
  color: #b8babf;
  text-align: left;
  padding: 0.5rem;
}

.amis-scope .cxd-ScheduleCalendar-icon {
  position: absolute;
  bottom: -0.25rem;
  left: 50%;
  transform: translateX(-50%);
  display: block;
  width: 0.625rem;
  height: 0.625rem;
  border-radius: 50%;
  z-index: 10;
}

.amis-scope .cxd-ScheduleCalendar-action {
  display: block;
  padding: 0;
  width: 100%;
  height: 100%;
  border: none;
  background: transparent;
  color: inherit;
}

.amis-scope .cxd-ScheduleCalendar-action:not(:disabled):not(.is-disabled):hover {
  color: inherit;
  background: transparent;
  border-color: transparent;
}

.amis-scope .cxd-ScheduleCalendar .rdtDay {
  position: relative;
}

.amis-scope .cxd-ScheduleCalendar-text-overflow {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  position: absolute;
  width: 100%;
}

.amis-scope .cxd-ScheduleCalendar .rdt .rdtPicker td.rdtActive {
  background: transparent;
  color: #151b26;
}

.amis-scope .cxd-ScheduleCalendar .rdt .rdtPicker td.rdtActive > span {
  background: transparent !important;
}

.amis-scope .cxd-ScheduleCalendar .rdt .rdtPicker td.rdtActive:hover {
  background: #f7f7f9;
}

.amis-scope .cxd-ScheduleCalendar-large {
  width: 100%;
}


OR_EXPECT_TRUE(bb == 0);
QCOR_EXPECT_TRUE(n == 0);
const c = 5.5e3, d=5;
const e = 2.2;
QCOR_EXPECT_TRUE(c == 5500.0);
QCOR_EXPECT_TRUE(d == 5);
QCOR_EXPECT_TRUE(e == 2.2);
x q2;
k = measure q2;
QCOR_EXPECT_TRUE(k == 1);
for i in [0:22] {
    QCOR_EXPECT_TRUE(kk[i] == 0);
}

float[64] f = 3.14;
float[64] test = 3.14 - f;
QCOR_EXPECT_TRUE(test < .001);
)#";
  auto mlir =
      qcor::mlir_compile(src, "test", qcor::OutputType::MLIR, true);
  std::cout << "MLIR:\n" << mlir << "\n";
      auto llvmi =
      qcor::mlir_compile(src, "test", qcor::OutputType::LLVMMLIR, true);
  std::cout << "LLVM:\n" << llvmi << "\n";
    auto llvm =
      qcor::mlir_compile(src, "test", qcor::OutputType::LLVMIR, true);
  std::cout << "LLVM:\n" << llvm << "\n";
  EXPECT_FALSE(qcor::execute(src, "test"));

  const std::string src2 = R"#(OPENQASM 3;
include "qelib1.inc";
bit kk[22];
for i in [0:22] {
    print("should only see 0 bc next statement will fail: ", i);
    QCOR_EXPECT_TRUE(kk[i] == 1);
}
)#";
  auto mlir2 =
      qcor::mlir_compile(src2, "test", qcor::OutputType::MLIR, true);
  std::cout << "MLIR:\n" << mlir2 << "\n";
  EXPECT_TRUE(qcor::execute(src2, "test"));
}

TEST(qasm3VisitorTester, checkCregAddressingWithMemref) {
  const std::string broadcast = R"#(OPENQASM 3;
include "qelib1.inc";
int[32] i = 2;
const j = 1;
bit b[4] = "0101";

QCOR_EXPECT_TRUE(b[i] == 0);
QCOR_EXPECT_TRUE(b[j] == 1);
)#";
  auto mlir = qcor::mlir_compile(broadcast, "creg_memref_addressing",
                                 qcor::OutputType::MLIR, false);

  EXPECT_FALSE(qcor::execute(broadcast, "creg_memref_addressing"));
}

TEST(qasm3VisitorTester, checkGate) {
  const std::string gate_def = R"#(OPENQASM 3;
gate cphase(x) a, b
{
  U(0, 0, x / 2) a;
  CX a, b;
  U(0, 0, -x / 2) b;
  CX a, b;
  U(0, 0, x / 2) b;
}
)#";
  auto mlir = qcor::mlir_compile(gate_def, "gate_def",
                                 qcor::OutputType::MLIR, false);

  std::cout << "gate_def MLIR:\n" << mlir << "\n";

  qcor::execute(gate_def, "gate_def");

  std::cout << "LLVM:\n"
            << qcor::mlir_compile(gate_def, "gate_def",
                                  qcor::OutputType::LLVMIR, false)
            << "\n";
}

int main(int argc, char **argv) {
  ::testing::InitGoogleTest(&argc, argv);
  auto ret = RUN_ALL_TESTS();
  return ret;
}/*******************************************************************************
 * Copyright (c) 2018-, UT-Battelle, LLC.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the MIT License
 * which accompanies this distribution.
 *
 * Contributors:
 *   Alexander J. McCaskey - initial API and implementation
 *   Thien Nguyen - implementation
 *******************************************************************************/
#include "gtest/gtest.h"
#include


#!/usr/bin/env python3
import apstra_api
import sys
# main program
if len(sys.argv) != 2:
    print("what is the rack_type name ?")
else:
    rack_name=sys.argv[1]
    id=apstra_api.get_id_rack_type(rack_name)
    print(f"rack name {rack_name}: id {id}")


�号无法加入公会。";
ERR_GUILD_TRIAL_ACCOUNT_VETERAN = "若无角色在该公会中，此账号则无法加入此公会。";
ERR_GUILD_UNDELETABLE_DUE_TO_LEVEL = "你的公会等级太高，不能删除。";
ERR_GUILD_WITHDRAW_LIMIT = "你今天已经从公会银行提取太多物资了。";
ERR_HAS_RESTRICTION = "你现在无法这样做。";
ERR_IGNORE_ADDED_S = "%s现在被加入屏蔽名单了";
ERR_IGNORE_ALREADY_S = "%s已经被你加入屏蔽名单了";
ERR_IGNORE_AMBIGUOUS = "该名字不够明确，请输入该玩家的服务器名。";
ERR_IGNORE_DELETED = "从列表中移除屏蔽，原因：该角色不存在。";
ERR_IGNORE_FULL = "你的屏蔽列表已满";
ERR_IGNORE_NOT_FOUND = "没有找到玩家。";
ERR_IGNORE_REMOVED_S = "%s已被取消屏蔽。";
ERR_IGNORE_SELF = "你不能屏蔽自己";
ERR_IGNORING_YOU_S = "%s已将你屏蔽。";
ERR_INFORM_SUGGEST_INVITE_S = "%s建议其队伍邀请你。";
ERR_INFORM_SUGGEST_INVITE_SS = "%1$s建议%2$s邀请你加入其队伍。";
ERR_INITIATE_TRADE_S = "你对%s发出交易请求";
ERR_INSPECT_S = "%s正在观察你。";
ERR_INSTANCE_GROUP_ADDED_S = "%s已经加入了副本队伍。";
ERR_INSTANCE_GROUP_JOINED_WITH_PARTY = "你同时处于小队和副本队伍中。你可以使用“/p”来和你的小队队友沟通，或使用“/i”来和你的副本队伍成员沟通。";
ERR_INSTANCE_GROUP_JOINED_WITH_RAID = "你同时处于团队和副本队伍中。你可以使用“/ra”来和你的团队队友沟通，或使用“/i”来和你的副本队伍成员沟通。";
ERR_INSTANCE_GROUP_REMOVED_S = "%s已经离开了副本队伍。";
ERR_INSUFF_TRACKED_CURRENCY_IS = "你必须在本赛季额外获得%d%s来购买这件物品。";
ERR_INTERNAL_BAG_ERROR = "内部包裹错误";
ERR_INTERNAL_ERROR = "内部错误";
ERR_INVALID_ATTACK_TARGET = "你不能攻击那个目标";
ERR_INVALID_FOLLOW_PVP_COMBAT = "你不能在PvP战斗中使用“跟随”功能。";
ERR_INVALID_FOLLOW_TARGET = "你不能跟随这个目标";
ERR_INVALID_FOLLOW_TARGET_PVP_COMBAT = "你不能跟随PvP战斗中的玩家。";
ERR_INVALID_GLYPH_SLOT = "无效的雕文栏位。";
ERR_INVALID_INSPECT_TARGET =


       break
    print(batch_data_for_test.keys())

    device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

    audio_feat = batch_data_for_test['audio_feat'].to(device)
    audio_feat_len = batch_data_for_test['audio_feat_len'].to(device)
    text_token = batch_data_for_test['text_token'].to(device)
    text_token_len = batch_data_for_test['text_token_len'].to(device)
    if audio_tokenizer.audio_segmenter.is_word_level:
        words_begin_index = batch_data_for_test['words_begin_index'].to(device)
        words_end_index = batch_data_for_test['words_end_index'].to(device)
        words_index_len = batch_data_for_test['words_index_len'].to(device)

    target_shape_for_text_token_embed = (text_token.shape[0], text_token.shape[1], model_config['text_encoder_input_size']) # shape of fake text_token_embedding
    print(f"target shape of text token embedding: {target_shape_for_text_token_embed}")
    # generate fake text_token_embed
    text_token_fake_embed = torch.randn(target_shape_for_text_token_embed, device=device)
    audio_tokenizer.eval()
    audio_tokenizer.to(device)
    with torch.no_grad():
        overall_results = audio_tokenizer(
            audio_feat,
            audio_feat_len,
            text_token,
            text_token_fake_embed,
            text_token_len,
        )
        segmented_results = overall_results["segmented_results"]
        segmented_feats = segmented_results["segmented_feats"]
        segmented_feats_lengths = segmented_results["segmented_feats_lengths"]
        print(segmented_feats.shape, segmented_feats_lengths)
        quantized_results = overall_results["quantized_results"]
        quantized_feats = quantized_results["quantized_feats"]
        quantized_feats_lengths = quantized_results["quantized_feats_lengths"]
        quantized_indices = quantized_results["quantized_indices"]
        print(quantized_indices)
        print(quantized_feats.shape, quantized_feats_lengths, quantized_indices.shape)

if __name__ == "__main__":
    test_heuristic()
    # test_cross_attn()


ingBox(document.ActiveView), Snoop)
        {

        }

        private static IEnumerable<SnoopableObject> Snoop(Document document, Element element)
        {
            //var document = context.Document;
            yield return new SnoopableObject(document, null, new[] { new SnoopableObject(document, element.get_BoundingBox(null)) }) { NamePrefix = "view:" };
            if (document.ActiveView != null)
            {
                yield return new SnoopableObject(document, null, new[] { new SnoopableObject(document, element.get_BoundingBox(document.ActiveView)) }) { NamePrefix = "view:", Name = "Active view: " + document.ActiveView.Name };
            }

        }
    }
}


</button>
    } @else {
      <mat-icon matPrefix>search</mat-icon>
    }
    <input matInput [formControl]="searchControl" placeholder="Search..." i18n-placeholder="@@searchPlaceholder" />
  </mat-form-field>

@switch (page.type) {
  @case ('SWAGGER') {
    @if (page.configuration?.viewer?.toLowerCase() === 'redoc') {
      <app-page-redoc [page]="page" />
    } @else {
      <app-page-swagger [page]="page" />
    }
  }
  @case ('MARKDOWN') {
    <app-page-markdown [pages]="pages" [content]="page.content" [apiId]="apiId" />
  }
  @case ('ASCIIDOC') {
    <app-page-asciidoc [content]="page.content" />
  }
  @case ('ASYNCAPI') {
    <app-page-async-api [content]="page.content" />
  }
  @default {

Not yet implemented

  }
}

<mat-card class="app-card" appearance="outlined">
  <mat-card-content class="app-card__content">

      <app-picture [picture]="application.picture" [hashValue]="application.name" [size]="40" />

{{ application.name }}

Owner: {{ application.owner?.display_name }}

      @if (application.description) {
        {{ application.description }}
      } @else {
        Description for this application is missing.
      }

  </mat-card-content>
  <mat-card-actions class="app-card__actions">
    <button i18n="@@appCardButton" mat-stroked-button color="primary" [routerLink]="['.', application.id]">Open</button>
  </mat-card-actions>
</mat-card>


->
    <duration>
      <!--如果是连续帧，这个就是const，不用填直接生成-->
    </duration>
    <!--Only-ContinuousFrame-->
    <frame_number>
      <!--为1代表这个不是多帧拼接的图片-->
      <!--如果是多帧，那么多帧中的每一帧将具有一个ID，直接引用这一个帧的frameid就对应这一组的第一帧-->
      <!--如果是关键帧，这东西必然是1，根本不用写-->
    </frame_number>
    <frame_lastingtime>
      <!--单帧持续时间-->
    </frame_lastingtime>
    <frame_combinetype>
      <!--horizontal、vertical-->
    </frame_combinetype>
  </resource>
</code>
```

### resource type="index"/framelist

```xml
<code>
  <resource type="index">
    <framelist>
      <framelist_id>
      </framelist_id>
      <framelist_number>
        <!--list有多少个帧-->
      </framelist_number>
      <frame>
        <frame_id><!--这个ID是可以填带层次ID的--></frame_id>
        <frame_order></frame_order>
      </frame>
    </framelist>
  </resource>
</code>
```

### 帧ID命名规则

若一个帧是单独给出，单独在一个文件，那么这个frame的id就是它的id

若多个帧拼合成一个图片，存放在同一个文件，分别划分为不同区域，（在不考虑具体分区方式的情况下，先假设每个分区都能索引），这个frame的id为aaa的情况下，单个帧的id就是aaa-1，aaa-2，……，aaa-n

**以上都尚未完整的定义，还需要不断改进**

## 在各引擎中出现的动画文档

### Librian

**Librian的动画是基于关键帧的**

重点鞭尸对象，不用进阶的编程技巧做不出简单的动画来

只能用类似滤镜或者叠加SVG的图层一样的东西才可以

详情可见[特效 - Librian中文文檔](https://doc.librian.net/site/%E9%80%B2%E9%9A%8E/%E7%89%B9%E6%95%88.html)

仅仅是让已有元素动起来的话，可以使用css来写特效

总之由于Librian的这个动画写起来实在是太奇葩（但这也是它的特色），我们暂且较难支持。

如果想仔细研究，不如看看[CSS3的animation相关文档](https://www.w3school.com.cn/cssref/pr_animation.asp)。

### BKEngine

**BKE的动画是基于帧序列的**

BKE的官方文档分为两部分

[旧教程/动画](http://docs.bakery.moe/old/animation/)

[脚本命令手册/帧动画](http://docs.bakery.moe/bkscr/animate/)

BKEngine提供了丰富帧动画模式，同时提供简单的控制选项，他们都归属于animate指令。
帧动画是一种特殊的精灵。~~——说白了就是图片~~

>
>这一次给各位介绍的是BKE的动画类，它包含了 `animate` 、 `action` 与 `trans` 。三者都是在B


_speedtest', '3': 1027, '4': 1, '5': 11, '6': '.SpaceX.API.Device.StartSpeedtestRequest', '9': 0, '10': 'startSpeedtest'},
    {'1': 'get_speedtest_status', '3': 1028, '4': 1, '5': 11, '6': '.SpaceX.API.Device.GetSpeedtestStatusRequest', '9': 0, '10': 'getSpeedtestStatus'},
    {'1': 'report_client_speedtest', '3': 1029, '4': 1, '5': 11, '6': '.SpaceX.API.Device.ReportClientSpeedtestRequest', '9': 0, '10': 'reportClientSpeedtest'},
    {
      '1': 'initiate_remote_ssh',
      '3': 1030,
      '4': 1,
      '5': 11,
      '6': '.SpaceX.API.Device.InitiateRemoteSshRequest',
      '8': {'3': true},
      '9': 0,
      '10': 'initiateRemoteSsh',
    },
    {'1': 'self_test', '3': 1031, '4': 1, '5': 11, '6': '.SpaceX.API.Device.SelfTestRequest', '9': 0, '10': 'selfTest'},
    {'1': 'set_test_mode', '3': 1032, '4': 1, '5': 11, '6': '.SpaceX.API.Device.SetTestModeRequest', '9': 0, '10': 'setTestMode'},
    {'1': 'software_update', '3': 1033, '4': 1, '5': 11, '6': '.SpaceX.API.Device.SoftwareUpdateRequest', '9': 0, '10': 'softwareUpdate'},
    {'1': 'enable_debug_telem', '3': 1034, '4': 1, '5': 11, '6': '.SpaceX.API.Device.EnableDebugTelemRequest', '9': 0, '10': 'enableDebugTelem'},
    {'1': 'iq_capture', '3': 1035, '4': 1, '5': 11, '6': '.SpaceX.API.Device.IQCaptureRequest', '9': 0, '10': 'iqCapture'},
    {'1': 'get_radio_stats', '3': 1036, '4': 1, '5': 11, '6': '.SpaceX.API.Device.GetRadioStatsRequest', '9': 0, '10': 'getRadioStats'},
    {'1': 'time', '3': 1037, '4': 1, '5': 11, '6': '.SpaceX.API.Device.GetTimeRequest', '9': 0, '10': 'time'},
    {'1': 'run_iperf_server', '3': 1038, '4': 1, '5': 11, '6': '.SpaceX.API.Device.RunIperfServerRequest', '9': 0, '10': 'runIperfServer'},
    {'1': 'tcp_connectivity_test', '3': 1039, '4': 1, '5': 11, '6': '.SpaceX.API.Device.TcpConnectivityTestRequest', '9': 0, '10': 'tcpConnectivityTest'},
    {'1': 'udp_connectivity_test', '3': 1040, '4': 1, '5': 11, '6': '.SpaceX.API.Device.UdpConnectivityTestRequest', '9': 0, '10': 'udpConnectivityTest'},
    {'1': 'sensitive_request', '3': 1078, '4': 1, '5': 11, '6': '.SpaceX.API.Device.SignedData', '9': 0, '10': 'sensitiveRequest'},
    {'1': 'dish_stow', '3': 2002, '4': 1, '5': 11, '6': '.SpaceX.API.Device.DishStowRequest', '9': 0, '10': 'dishStow'},
    {'1': 'dish_get_context', '3': 2003, '4': 1, '5': 11, '6': '.SpaceX.API.Devic


  )

const subtractionTest = (executionMethod: ExecutionMethod) =>
  runTestSuccess(
    executionMethod,
    `
    83553 - 28018;
  `,
    '55535',
    'subtraction'
  )

const multiplicationTest = (executionMethod: ExecutionMethod) =>
  runTestSuccess(
    executionMethod,
    `
  95533 * 269;
`,
    '25698377',
    'multiplication'
  )

const divisionTest = (executionMethod: ExecutionMethod) =>
  runTestSuccess(
    executionMethod,
    `
  69573 / 7;
`,
    '9939',
    'division'
  )

const equalityTest = (executionMethod: ExecutionMethod) =>
  runTestSuccess(
    executionMethod,
    `
  4 === 423;
`,
    'false',
    'equality'
  )

const inequalityTest = (executionMethod: ExecutionMethod) =>
  runTestSuccess(
    executionMethod,
    `
  577 !== 577;
`,
    'false',
    'inequality'
  )

const logicalAndTest = (executionMethod: ExecutionMethod) =>
  runTestSuccess(
    executionMethod,
    `
  true && false;
`,
    'false',
    'logical and'
  )

const logicalOrTest = (executionMethod: ExecutionMethod) =>
  runTestSuccess(
    executionMethod,
    `
  true || error();
`,
    'true',
    'logical Or'
  )

const logicalAndTestLazy = (executionMethod: ExecutionMethod) =>
  runTestSuccess(
    executionMethod,
    `
  false && error();
`,
    'false',
    'logical and (lazy)'
  )

const conditionalsTest = (executionMethod: ExecutionMethod) =>
  runTestSuccess(
    executionMethod,
    `
  false ? 20 : 46;
`,
    '46',
    'conditionals test'
  )

const conditionalsTestLazyConsequent = (executionMethod: ExecutionMethod) =>
  runTestSuccess(
    executionMethod,
    `
  false ? error() : 934;
`,
    '934',
    'conditionals test (lazy consequent)'
  )

const conditionalsTestLazyAlternative = (executionMethod: ExecutionMethod) =>
  runTestSuccess(
    executionMethod,
    `
  true ? 782 : error();
`,
    '782',
    'conditionals test (lazy alternative)'
  )

const nestedExpressionsTest = (executionMethod: ExecutionMethod) =>
  runTestSuccess(
    executionMethod,
    `
  (true && (true || false)) ? (441 * 2) : (7 + 245);
`,
    '882',
    'nested expressions test'
  )

// ================== RUN THE TESTS ====================
const testArray = [
  additionTest,
  subtractionTest,
  multiplicationTest,
  divisionTest,
  equalityTest,
  inequalityTest,
  logicalAndTest,
  logicalOrTest,
  logicalAndTestLazy,
  conditionalsTest,
  conditionalsTestLazyConsequent,
  conditionalsTestLazyAlternative,
  nestedExpressionsTest
]
testArray.forEach(tst => tst('interpreter'))
testArray.forEach(tst => tst('native'))
testArray.forEach(tst => tst('auto'))
import { ArgumentsHost, Catch, ExceptionFilter, HttpException, ServiceUnavailableException } from '@nestjs/common';
import { GqlContextType } from '@nestjs/graphql';
import { Response } from 'express';

@Catch(HttpException)
export class HttpExceptionLogFilter implements ExceptionFilter {
  /**
   * Log exception
   */
  catch(exception: HttpException, host: ArgumentsHost) {
    // Log
    console.debug(exception.stack);

    // GraphQL
    const type = host.getType<GqlContextType>();
    if (type === 'graphql') {
      return exception;
    }

    // REST
    const ctx = host.switchToHttp();
    const res = ctx.getResponse<Response>();
    const status = exception.getStatus();
    res.status(status).json(


final_fields
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import

import 'dart:convert' as $convert;
import 'dart:core' as $core;
import 'dart:typed_data' as $typed_data;

@$core.Deprecated('Use nearbyUserDescriptor instead')
const NearbyUser$json = {
  '1': 'NearbyUser',
  '2': [
    {'1': 'user_id', '3': 1, '4': 1, '5': 3, '10': 'userId'},
    {
      '1': 'device_type',
      '3': 2,
      '4': 1,
      '5': 14,
      '6': '.im.turms.proto.DeviceType',
      '9': 0,
      '10': 'deviceType',
      '17': true
    },
    {
      '1': 'info',
      '3': 3,
      '4': 1,
      '5': 11,
      '6': '.im.turms.proto.UserInfo',
      '9': 1,
      '10': 'info',
      '17': true
    },
    {
      '1': 'distance',
      '3': 4,
      '4': 1,
      '5': 5,
      '9': 2,
      '10': 'distance',
      '17': true
    },
    {
      '1': 'location',
      '3': 5,
      '4': 1,
      '5': 11,
      '6': '.im.turms.proto.UserLocation',
      '9': 3,
      '10': 'location',
      '17': true
    },
    {
      '1': 'custom_attributes',
      '3': 15,
      '4': 3,
      '5': 11,
      '6': '.im.turms.proto.Value',
      '10': 'customAttributes'
    },
  ],
  '8': [
    {'1': '_device_type'},
    {'1': '_info'},
    {'1': '_distance'},
    {'1': '_location'},
  ],
};

/// Descriptor for `NearbyUser`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List nearbyUserDescriptor = $convert.base64Decode(
    'CgpOZWFyYnlVc2VyEhcKB3VzZXJfaWQYASABKANSBnVzZXJJZBJACgtkZXZpY2VfdHlwZRgCIA'
    'EoDjIaLmltLnR1cm1zLnByb3RvLkRldmljZVR5cGVIAFIKZGV2aWNlVHlwZYgBARIxCgRpbmZv'
    'GAMgASgLMhguaW0udHVybXMucHJvdG8uVXNlckluZm9IAVIEaW5mb4gBARIfCghkaXN0YW5jZR'
    'gEIAEoBUgCUghkaXN0YW5jZYgBARI9Cghsb2NhdGlvbhgFIAEoCzIcLmltLnR1cm1zLnByb3Rv'
    'LlVzZXJMb2NhdGlvbkgDUghsb2NhdGlvbogBARJCChFjdXN0b21fYXR0cmlidXRlcxgPIAMoCz'
    'IVLmltLnR1cm1zLnByb3RvLlZhbHVlUhBjdXN0b21BdHRyaWJ1dGVzQg4KDF9kZXZpY2VfdHlw'
    'ZUIHCgVfaW5mb0ILCglfZGlzdGFuY2VCCwoJX2xvY2F0aW9u');
//
//  Generated code. Do not modify.
//  source: model/user/user_settings.proto
//
// @dart = 2.12

// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import

import 'dart:convert' as $convert;
import 'dart:core' as $core;
import 'dart:typed_data' as $typed_data;

@$core.Deprecated('Use userSettingsDescriptor instead')
const UserSettings$json = {
  '1


lf) -> Option<&(dyn StdError + 'static)> {
        match self {
            ClientError::Internal(err) => Some(err),
            ClientError::Reqwest(err) => Some(err),
            ClientError::UrlParse(err) => Some(err),
            _ => None,
        }
    }
}
<reponame>ASkyeye/SassyKitdi
pub type ExAllocatePool = extern "stdcall" fn(
    pool_type:  crate::enums::POOL_TYPE,
    size:       crate::types::SIZE_T,
) -> crate::types::PVOID;

pub type ExFreePoolWithTag = extern "stdcall" fn(
    Buffer:     crate::types::PVOID,
    Tag:        crate::types::ULONG,
) -> ();

pub type ZwCreateFile = extern "stdcall" fn(
    FileHandle:         crate::types::PHANDLE,
    AccessMask:         crate::types::ACCESS_MASK,
    ObjectAttributes:   crate::structs::POBJECT_ATTRIBUTES,
    IoStatusBlock:      crate::structs::PIO_STATUS_BLOCK,
    AllocationSize:     crate::structs::PLARGE_INTEGER,
    FileAttributes:     crate::types::ULONG,
    ShareAccess:        crate::types::ULONG,
    CreateDisposition:  crate::types::ULONG,
    CreateOptions:      crate::types::ULONG,
    EaBuffer:           crate::types::PVOID,
    EaLength:           crate::types::ULONG,
) -> crate::types::NTSTATUS;

pub type ObReferenceObjectByHandle = extern "stdcall" fn(
    Handle:             crate::types::HANDLE,
    AccessMask:         crate::types::ACCESS_MASK,
    ObjectType:         crate::types::PVOID, // POBJECT_TYPE,
    AccessMode:         crate::enums::KPROCESSOR_MODE,
    Object:             *mut crate::types::PVOID, // PVOID*,
    HandleInformation:  crate::types::PVOID, // POBJECT_HANDLE_INFORMATION,
) -> crate::types::NTSTATUS;

pub type IoBuildDeviceIoControlRequest = extern "stdcall" fn(
    IoControlCode:              crate::types::ULONG,
    DeviceObject:               crate::structs::PDEVICE_OBJECT,
    InputBuffer:                crate::types::PVOID,
    InputBufferLength:          crate::types::ULONG,
    OutputBuffer:               crate::types::PVOID,
    OutputBufferLength:         crate::types::ULONG,
    InternalDeviceIoControl:    crate::types::BOOLEAN,
    Event:                      crate::structs::PKEVENT,
    IoStatusBlock:              crate::structs::PIO_STATUS_BLOCK,
) -> crate::structs::PIRP;

pub type IoGetRelatedDeviceObject = extern "stdcall" fn(
    FileObject: crate::structs::PFILE_OBJECT,
) -> crate::structs::PDEVICE_OBJECT;

pub type IofCallDriver = extern "fastcall" fn(
    DeviceObject:   crate::structs::PDEVICE_OBJECT,
    Irp:            crate::structs::PIRP,
) -> crate::types::NTSTATUS;

pub type KeInitializeEvent = extern "stdcall" fn(
    Event:      crate::structs::PKEVENT,
    Type:       crate::enums::EVENT_TYPE,
    State:      crate::types::BOOLEAN,
) -> ();

pub type KeWaitForSingleObject = extern "stdcall" fn(
    Object:         crate::types::PVOID,
    WaitReason:     crate::enums::KWAIT_REASON,
    WaitMode:       crate::enums::KPROCESSOR_MODE,
    Alertable:      crate::types::BOOLEAN,
    Timeout:        crate::structs::PLARGE_INTEGER,
) -> ();

pub type IoAllocateMdl = extern "stdcall" fn(
    VirtualAddress:     crate::types::PVOID,
    Length:             crate::types::ULONG,
    SecondaryBuffer:    crate::types::BOOLEAN,
    ChargeQuote:        crate::types::BOOLEAN,
    Irp:                crate::structs::PIRP,
) -> crate::struct


": "ANKR (Binance Smart Chain)",
    "image": "https://content-api.changenow.io/uploads/ankr_e70af85ea3.svg",
    "hasExternalId": false,
    "isFiat": false,
    "featured": false,
    "isStable": false,
    "supportsFixedRate": true,
    "isAvailable": true
  },
  {
    "ticker": "celrbsc",
    "name": "Celer Network (Binance Smart Chain)",
    "image": "https://content-api.changenow.io/uploads/celr_ace0d3223f.svg",
    "hasExternalId": false,
    "isFiat": false,
    "featured": false,
    "isStable": false,
    "supportsFixedRate": true,
    "isAvailable": true
  },
  {
    "ticker": "sandmatic",
    "name": "The Sandbox (Polygon)",
    "image":
        "https://content-api.changenow.io/uploads/sandmatic_7880e53702.svg",
    "hasExternalId": false,
    "isFiat": false,
    "featured": false,
    "isStable": false,
    "supportsFixedRate": true,
    "isAvailable": true
  },
  {
    "ticker": "xcnbsc",
    "name": "Chain (Binance Smart Chain)",
    "image": "https://content-api.changenow.io/uploads/xcn_ef5b5f4c1f.svg",
    "hasExternalId": false,
    "isFiat": false,
    "featured": false,
    "isStable": false,
    "supportsFixedRate": true,
    "isAvailable": true
  },
  {
    "ticker": "plamatic",
    "name": "PlayDapp (Polygon)",
    "image": "https://content-api.changenow.io/uploads/plamatic_028c5839dc.svg",
    "hasExternalId": false,
    "isFiat": false,
    "featured": false,
    "isStable": false,
    "supportsFixedRate": true,
    "isAvailable": true
  },
  {
    "ticker": "c98erc20",
    "name": "Coin98 (ERC20)",
    "image": "https://content-api.changenow.io/uploads/c98erc20_b01669a4af.svg",
    "hasExternalId": false,
    "isFiat": false,
    "featured": false,
    "isStable": false,
    "supportsFixedRate": true,
    "isAvailable": true
  },
  {
    "ticker": "momento",
    "name": "Momento",
    "image": "https://content-api.changenow.io/uploads/momento_84e5da1a46.svg",
    "hasExternalId": false,
    "isFiat": false,
    "featured": false,
    "isStable": false,
    "supportsFixedRate": true,
    "isAvailable": true
  },
  {
    "ticker": "fire",
    "name": "FireFlame Inu",
    "image": "https://content-api.changenow.io/uploads/fire_832a6c1596.svg",
    "hasExternalId": false,
    "isFiat": false,
    "featured": false,
    "isStable": false,
    "supportsFixedRate": true,
    "isAvailable": true


Optional maximum SI factor. Defaults to <see cref="SI2.Exa"/>.</param>
        /// <remarks>
        /// The <paramref name="symbolNames"/> array needs one string entry for each defined SI item ordered from
        /// least (<see cref="Kilo"/>) to greatest (<see cref="Exa"/>), see <see cref="Names"/> or <see cref="Symbols"/>
        /// arrays for examples.
        /// </remarks>
        /// <returns>A <see cref="String"/> representation of the number of units.</returns>
        /// <exception cref="ArgumentOutOfRangeException"><paramref name="minimumFactor"/> or <paramref name="maximumFactor"/> is not defined in <see cref="Factors"/> array.</exception>
        public static string ToScaledString(long totalUnits, string format, string unitName, string[] symbolNames, int decimalPlaces = -1, long minimumFactor = Kilo, long maximumFactor = Exa)
        {
            StringBuilder image = new StringBuilder();

            double factor;
            int minimumIndex, maximumIndex;

            minimumIndex = GetFactorIndex(minimumFactor);

            if (minimumIndex < 0)
                throw new ArgumentOutOfRangeException(nameof(minimumFactor), "Unknown SI2 factor " + minimumFactor);

            maximumIndex = GetFactorIndex(maximumFactor);

            if (maximumIndex < 0)


6543210L);

        // Assert
        Assert.Equal([], receiverA.Received);
        Assert.Equal([], receiverB.Received);
        Assert.Equal([], receiverC.Received);
    }

    [Fact]
    public void Case_1()
    {
        // Arrange
        var receiverA = new GreeterReceiver("A");
        var receiverIdA = Guid.NewGuid();
        var receiverB = new GreeterReceiver("B");
        var receiverIdB = Guid.NewGuid();

        IMulticastGroupProvider groupProvider = new InMemoryGroupProvider(DynamicInMemoryProxyFactory.Instance);

        // Act
        var group = groupProvider.GetOrAddSynchronousGroup<Guid, IGreeterReceiver>("MyGroup");
        group.Add(receiverIdA, receiverA);
        group.Add(receiverIdB, receiverB);
        group.All.OnMessage("System", "Hello");
        group.Except([receiverIdA]).OnMessage("System", "Hello without A");

        receiverA.OnMessage("DirectMessage", "Sent a message to the receiver directly.");

        // Assert
        Assert.Equal([
            ("System", "Hello"),
            ("DirectMessage", "Sent a message to the receiver directly."),
        ], receiverA.Received);

        Assert.Equal([
            ("System", "Hello"),
            ("System", "Hello without A"),
        ], receiverB.Received);
    }

    [Fact]
    public void Groups_Created()
    {
        // Arrange
        var receiverA = new TestInMemoryReceiver();
        var receiverIdA = Guid.NewGuid();
        var receiverB = new TestInMemoryReceiver();
        var receiverIdB = Guid.NewGuid();

        var groupProvider = new InMemoryGroupProvider(DynamicInMemoryProxyFactory.Instance);

        // Act
        var group = groupProvider.GetOrAddSynchronousGroup<Guid, ITestReceiver>("MyGroup");

        // Assert
        Assert.Single(groupProvider.AsPrivateProxy()._groups);
    }

    [Fact]
    public void Groups_Disposed()
    {
        // Arrange
        var receiverA = new TestInMemoryReceiver();
        var receiverIdA = Guid.NewGuid();
        var receiverB = new TestIn


                   #   in Loop: Header=BB4_6 Depth=1
        addq    $1, %rax
        cmpq    %rax, %rsi
        je      .LBB4_9
.LBB4_6:                                # =>This Inner Loop Header: Depth=1
        vucomisd        (%rdi,%rax,8), %xmm0
        jae     .LBB4_8
        vmovsd  %xmm0, (%rdi,%rax,8)
        jmp     .LBB4_8
MinimumNumber_F32_V(float*, float, unsigned long):            # @MinimumNumber_F32_V(float*, float, unsigned long)
        testq   %rsi, %rsi
        je      .LBB5_9
        cmpq    $32, %rsi
        jae     .LBB5_3
        xorl    %eax, %eax
        jmp     .LBB5_6
.LBB5_3:
        movq    %rsi, %rax
        andq    $-32, %rax
        vbroadcastss    %xmm0, %ymm1
        leaq    96(%rdi), %rcx
        xorl    %edx, %edx
.LBB5_4:                                # =>This Inner Loop Header: Depth=1
        vcmpltps        -96(%rcx,%rdx,4), %ymm1, %ymm2
        vcmpltps        -64(%rcx,%rdx,4), %ymm1, %ymm3
        vcmpltps        -32(%rcx,%rdx,4), %ymm1, %ymm4
        vcmpltps        (%rcx,%rdx,4), %ymm1, %ymm5
        vmaskmovps      %ymm1, %ymm2, -96(%rcx,%rdx,4)
        vmaskmovps      %ymm1, %ymm3, -64(%rcx,%rdx,4)
        vmaskmovps      %ymm1, %ymm4, -32(%rcx,%rdx,4)
        vmaskmovps      %ymm1, %ymm5, (%rcx,%rdx,4)
        addq    $32, %rdx
        cmpq    %rdx, %rax
        jne     .LBB5_4
        cmpq    %rsi, %rax
        jne     .LBB5_6
.LBB5_9:
        vzeroupper
        retq
.LBB5_8:                                #   in Loop: Header=BB5_6 Depth=1
        addq    $1, %rax
        cmpq    %rax, %rsi
        je      .LBB5_9
.LBB5_6:                                # =>This Inner Loop Header: Depth=1
        vucomiss        (%rdi,%rax,4), %xmm0
        jae     .LBB5_8
        vmovss  %xmm0, (%rdi,%rax,4)
        jmp     .LBB5_8


,0x10,0x00,0x00,0x1a]
#CHECK: vsceg   %v0, 0(%v0,%r1), 1      # encoding: [0xe7,0x00,0x10,0x00,0x10,0x1a]
#CHECK: vsceg   %v0, 0(%v0,%r15), 0     # encoding: [0xe7,0x00,0xf0,0x00,0x00,0x1a]
#CHECK: vsceg   %v0, 0(%v15,%r1), 0     # encoding: [0xe7,0x0f,0x10,0x00,0x00,0x1a]
#CHECK: vsceg   %v0, 0(%v31,%r1), 0     # encoding: [0xe7,0x0f,0x10,0x00,0x04,0x1a]
#CHECK: vsceg   %v0, 4095(%v0,%r1), 0   # encoding: [0xe7,0x00,0x1f,0xff,0x00,0x1a]
#CHECK: vsceg   %v15, 0(%v0,%r1), 0     # encoding: [0xe7,0xf0,0x10,0x00,0x00,0x1a]
#CHECK: vsceg   %v31, 0(%v0,%r1), 0     # encoding: [0xe7,0xf0,0x10,0x00,0x08,0x1a]
#CHECK: vsceg   %v10, 1000(%v19,%r7), 1 # encoding: [0xe7,0xa3,0x73,0xe8,0x14,0x1a]

	vsceg	%v0, 0(%v0), 0
	vsceg	%v0, 0(%v0,%r1), 0
	vsceg	%v0, 0(%v0,%r1), 1
	vsceg	%v0, 0(%v0,%r15), 0
	vsceg	%v0, 0(%v15,%r1), 0
	vsceg	%v0, 0(%v31,%r1), 0
	vsceg	%v0, 4095(%v0,%r1), 0
	vsceg	%v15, 0(%v0,%r1), 0
	vsceg	%v31, 0(%v0,%r1), 0
	vsceg	%v10, 1000(%v19,%r7), 1

#CHECK: vseg    %v0, %v0, 0             # encoding: [0xe7,0x00,0x00,0x00,0x00,0x5f]
#CHECK: vseg    %v0, %v0, 15            # encoding: [0xe7,0x00,0x00,0x00,0xf0,0x5f]
#CHECK: vseg    %v0, %v15, 0            # encoding: [0xe7,0x0f,0x00,0x00,0x00,0x5f]
#CHECK: vseg    %v0, %v31, 0            # encoding: [0xe7,0x0f,0x00,0x00,0x04,0x5f]
#CHECK: vseg    %v15, %v0, 0            # encoding: [0xe7,0xf0,0x00,0x00,0x00,0x5f]
#CHECK: vseg    %v31, %v0, 0            # encoding: [0xe7,0xf0,0x00,0x00,0x08,0x5f]
#CHECK: vseg    %v14, %v17, 11          # encoding: [0xe7,0xe1,0x00,0x00,0xb4,0x5f]

	vseg	%v0, %v0, 0
	vseg	%v0, %v0, 15
	vseg	%v0, %v15, 0
	vseg


x2e
	.long	.LASF2904
	.byte	0x1
	.byte	0x1f
	.value	0x3a8
	.long	0x628b
	.uleb128 0x4b
	.long	0x624a
	.byte	0
	.uleb128 0x4c
	.long	.LASF2295
	.byte	0x1f
	.value	0x3ae
	.long	0x6e15
	.byte	0x1
	.uleb128 0x2a
	.string	"_Tp"
	.long	0x88ba
	.byte	0
	.uleb128 0x2
	.long	.LASF2905
	.byte	0x20
	.byte	0x8a
	.long	0x61d1
	.uleb128 0x4d
	.string	"cin"
	.byte	0x2
	.byte	0x3c
	.long	.LASF3513
	.long	0x628b
	.uleb128 0x2
	.long	.LASF2907
	.byte	0x20
	.byte	0x8d
	.long	0x6199
	.uleb128 0x1c
	.long	.LASF2908
	.byte	0x2
	.byte	0x3d
	.long	.LASF2910
	.long	0x62a5
	.uleb128 0x1c
	.long	.LASF2911
	.byte	0x2
	.byte	0x3e
	.long	.LASF2912
	.long	0x62a5
	.uleb128 0x1c
	.long	.LASF2913
	.byte	0x2
	.byte	0x3f
	.long	.LASF2914
	.long	0x62a5
	.uleb128 0x2
	.long	.LASF2915
	.byte	0x20
	.byte	0xb2
	.long	0x622e
	.uleb128 0x1c
	.long	.LASF2916
	.byte	0x2
	.byte	0x42
	.long	.LASF2917
	.long	0x62dd
	.uleb128 0x2
	.long	.LASF2918
	.byte	0x20
	.byte	0xb5
	.long	0x61b5
	.uleb128 0x1c
	.long	.LASF2919
	.byte	0x2
	.byte	0x43
	.long	.LASF2920
	.long	0x62f7
	.uleb128 0x1c
	.long	.LASF2921
	.byte	0x2
	.byte	0x44
	.long	.LASF2922
	.long	0x62f7
	.uleb128 0x1c
	.long	.LASF2923
	.byte	0x2
	.byte	0x45
	.long	.LASF2924
	.long	0x62f7
	.uleb128 0x4e
	.long	.LASF3490
	.byte	0x2
	.byte	0x4a
	.long	0x610d
	.uleb128 0x2e
	.long	.LASF2925
	.byte	0x1
	.byte	0x21
	.value	0x278
	.long	0x6351
	.uleb128 0x2a
	.string	"_Tp"
	.long	0x88a5
	.byte	0
	.uleb128 0x4f
	.long	.LASF2943
	.byte	0x1
	.byte	0x21
	.value	0x281
	.uleb128 0x4b
	.long	0x633a
	.byte	0
	.uleb128 0x4c
	.


itools.client.model.GetJobQueueListSearchRequest;

import com.clustercontrol.fault.HinemosUnknown;
import com.clustercontrol.jobmanagement.bean.JobQueueActivityViewFilter;
import com.clustercontrol.jobmanagement.bean.JobQueueSettingViewFilter;
import com.clustercontrol.util.RestClientBeanUtil;
import com.clustercontrol.util.TimezoneUtil;

public class JobQueueFilterBeanUtil {

	public static GetJobQueueListSearchRequest convertToRequest(JobQueueSettingViewFilter queueFilter)
			throws HinemosUnknown {
		GetJobQueueListSearchRequest request = new GetJobQueueListSearchRequest();
		RestClientBeanUtil.convertBean(queueFilter, request);
		if(queueFilter.getRegDateFrom() != null){
			request.setRegDateFrom(TimezoneUtil.getSimpleDateFormat().format(queueFilter.getRegDateFrom()));
		}
		RestClientBeanUtil.convertBean(queueFilter, request);
		if(queueFilter.getRegDateTo() != null){
			request.setRegDateTo(TimezoneUtil.getSimpleDateFormat().format(queueFilter.getRegDateTo()));
		}
		RestClientBeanUtil.convertBean(queueFilter, request);
		if(queueFilter.getUpdateDateFrom() != null){
			request.setUpdateDateFrom(TimezoneUtil.getSimpleDateFormat().format(queueFilter.getUpdateDateFrom()));
		}
		RestClientBeanUtil.convertBean(queueFilter, request);
		if(queueFilter.getUpdateDateTo() != null){
			request.setUpdateDateTo(TimezoneUtil.getSimpleDateFormat().format(queueFilter.getUpdateDateTo()));
		}
		return request;
	}

	public static GetJobQueueActivityInfoRequest convertToRequest(JobQueueActivityViewFilter queueFilter)
			throws HinemosUnknown {
		GetJobQueueActivityInfoRequest request = new GetJobQueueActivityInfoRequest();
		RestClientBeanUtil.convertBean(queueFilter, request);
		if(queueFilter.getRegDateFrom() != null){
			request.setRegDateFrom(TimezoneUtil.getSimpleDateFormat().format(queueFilter.getRegDateFrom()));
		}
		RestClientBeanUtil.convertBean(queueFilter, request);
		if(queueFilter.getRegDateTo() != null){
			request.setRegDateTo(TimezoneUtil.getSimpleDateFormat().format(queueFilter.getRegDateTo()));
		}
		RestClientBeanUtil.convertBean(queueFilter, request);
		if(queueFilter.getUpdateDateFrom() != null){
			request.setUpdateDateFrom(TimezoneUtil.getSimpleDateFormat().format(queueFilter.getUpdateDateFrom()));
		}
		RestClientBeanUtil.convertBean(queueFilter, request);
		if(queueFilter.getUpdateDateTo() != null){
			request.setUpdateDateTo(TimezoneUtil.getSimpleDateFormat().format(queueFilter.getUpdateDateTo()));
		}
		return request;
	}
}
/*
 * Copyright (c) 2022 NTT DATA INTELLILINK Corporation.
 *
 * Hinemos (http://www.hinemos.info/)
 *
 * See the LICENSE file for licensing information.
 */
package com.clustercontrol.jobmanagement.util;

import java.util.ArrayList;

import org.openapitools.client.model.JobDetailInfoResponse;

public class JobTreeItemWrapper {

	/** ジョブ情報 */
	private JobInfoWrapper data;
	private JobDetailInfoResponse detail;
	private JobTreeItemWrapper parent;

	/** 子のジョブツリーアイテムのリスト */
	private ArrayList<JobTreeItemWrapper> children = new ArrayList<JobTreeItemWrapper>();

	public JobTreeItemWrapper(){

	}

	public JobInfoWrapper getData() {
		return data;
	}

	public void setData(JobInfoWrapper data) {
		this.data = data;
	}


,"،")},week:{dow:6,doy:12}}),{1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"}),ia=(a.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(a){return/^(gündüz|axşam)$/.test(a)},meridiem:function(a,b,c){return 4>a?"gecə":12>a?"səhər":17>a?"gündüz":"axşam"},ordinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(a){if(0===a)return a+"-ıncı";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(ha[b]||ha[c]||ha[d])},week:{dow:1,doy:7}}),a.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")


width = pw_content_sz.x - label_width;
        if(dialog_mode != DialogMode::SELECT)
            input_bar_width -= (ext_box_width + style.ItemSpacing.x);

        bool show_error = false;
        ImGui::SetCursorPosY(pw_content_sz.y - frame_height_spacing * 2.0f);

        //Render Input Text Bar label
        ImGui::Text("%s", label.c_str());
        ImGui::SameLine();

        //Render Input Text Bar
        input_combobox_pos = ImVec2(pw_pos + ImGui::GetCursorPos());
        input_combobox_sz = ImVec2(input_bar_width, 0);
        ImGui::PushItemWidth(input_bar_width);
        if(ImGui::InputTextWithHint("##FileNameInput", "Type a name...", &input_fn[0], 256, ImGuiInputTextFlags_EnterReturnsTrue | ImGuiInputTextFlags_AutoSelectAll))
        {
            if(strlen(input_fn) > 0)
            {
                selected_fn = std::string(input_fn);
                validate_file = true;
            }
        }
        ImGui::PopItemWidth();

        //If input bar was focused clear selection
        if(ImGui::IsItemEdited())
            selected_idx = -1;

        // If Input Bar is edited show a list of files or dirs matching the input text.
        if(ImGui::IsItemEdited() || ImGui::IsItemActivated())
        {
            //If dialog_mode is OPEN/SAVE then filter from list of files..
            if(dialog_mode == DialogMode::OPEN || dialog_mode == DialogMode::SAVE)
            {
                inputcb_filter_files.clear();
                for(int i = 0; i < subfiles.size(); i++)
                {
                    if(ImStristr(subfiles[i].name.c_str(), nullptr, input_fn, nullptr) != nullptr)
                        inputcb_filter_files.push_back(std::ref(subfiles[i].name));
                }
            }

            //If dialog_mode == SELECT then filter from list of directories
            else if(dialog_mode == DialogMode::SELECT)
            {
                inputcb_filter_files.clear();
                for(int i = 0; i < subdirs.size(); i++)
                {
                    if(ImStristr(subdirs[i].name.c_str(), nullptr, input_fn, nullptr) != nullptr)
                        inputcb_filter_files.push_back(std::ref(subdirs[i].name));
                }
            }

            //If filtered list has any items show dropdown
            if(inputcb_filter_files.size() > 0)
                show_inputbar_combobox = true;
            else
                show_inputbar_combobox = false;
        }

        //Render Extensions and File Types DropDown
        if(dialog_mode != DialogMode::SELECT)
        {
            ImGui::SameLine();
            renderExtBox();
        }

        //Render a Drop Down of files/dirs (depending on mode) that have matching characters as the input text only.
        show_error |= renderInputComboBox();

        ImGui::SetCursorPos(cursor_pos);
        return show_error;
    }

    bool ImGuiFileBrowser::renderButtonsAndCheckboxRegion()
    {
        ImVec2 pw_size = ImGui::GetWindowSize();
        ImGuiStyle& style = ImGui::GetStyle();
        bool show_error = false;
        float frame_height = ImGui::GetFrameHeight();
        float frame_height_spacing = ImGui::GetFrameHeightWithSpacing();
        float opensave_btn_width = getButtonSize("Open").x;     // Since both Open/Save are 4 characters long, width gonna be same.
        float selcan_btn_width = getButtonSize("Cancel").x;     // Since both Cacnel/Select have same number of characters, so same width.
        float buttons_xpos;

        if (dialog_mode == DialogMode::SELECT)
            buttons_xpos = pw_size.x - opensave_btn_width - (2.0 * selcan_btn_width) - ( 2.0 * style.ItemSpac


t 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.
 */

import 'dart:math' as math;

import 'package:vector_math/vector_math_64.dart';

import '../../pdf.dart';
import '../../widgets.dart';

/// How to size the non-positioned children of a [Stack].
enum StackFit { loose, expand, passthrough }

/// Whether overflowing children should be clipped, or their overflow be
/// visible.
enum Overflow { visible, clip }

/// A widget that controls where a child of a [Stack] is positioned.
class Positioned extends SingleChildWidget {
  Positioned({
    double? left,
    this.top,
    double? right,
    this.bottom,
    required Widget child,
  })  : _left = left,
        _right = right,
        super(child: child);

  /// Creates a Positioned object with left, top, right, and bottom set to 0.0
  /// unless a value for them is passed.
  Positioned.fill({
    double? left = 0.0,
    this.top = 0.0,
    double? right = 0.0,
    this.bottom = 0.0,
    required Widget child,
  })  : _left = left,
        _right = right,
        super(child: child);

  /// Creates a widget that controls where a child of a [Stack] is positioned.
  factory Positioned.directional({
    required TextDirection textDirection,
    double? start,
    double? top,
    double? end,
    double? bottom,
    required Widget child,
  }) {
    double? left;
    double? right;
    switch (textDirection) {
      case TextDirection.rtl:
        left = end;
        right = start;
        break;
      case TextDirection.ltr:
        left = start;
        right = end;
        break;
    }
    return Positioned(
      left: left,
      top: top,
      right: right,
      bottom: bottom,
      child: child,
    );
  }

  double? get left => _left;

  double? get right => _right;

  final double? _left;
  final double? _right;

  final double? top;

  final double? bottom;

  double? get width => box?.width;

  double? get height => box?.height;

  @override
  void paint(Context context) {
    super.paint(context);
    paintChild(context);
  }
}

/// A widget that controls where a child of a [Stack] is positioned without
/// committing to a specific [TextDirection].
class PositionedDirectional extends Positioned {
  PositionedDirectional({
    this.start,
    this.end,
    double? top,
    double? bottom,
    required Widget child,
  }) : super(
          child: child,
          top: top,
          bottom: bottom,
        );

  PositionedDirectional.fill({
    this.start = 0.0,
    this.end = 0.0,
    double? top = 0.0,
    double? bottom = 0.0,
    required Widget child,
  }) : super(
          child: child,
          top: top,
          bottom: bottom,
        );

  final double? start;

  double? _resolvedLeft;

  double? _resolvedRight;

  @override
  double? get left => _resolvedLeft;

  @override
  double? get right => _resolvedRight;

  final double? end;

  @override
  void layout(Context context, BoxConstraints constraints,
      {bool parentUsesSize = false}) {
    super.layout(context, constraints, parentUsesSize: parentUsesSize);
    switch (Directionality.of(context)) {
      case TextDirection.rtl: