69em 0em 0em;
}
.ui.menu[class*="top attached"]:first-child {
  margin-top: 0em;
}

/* Bottom */
.ui[class*="bottom attached"].menu {
  bottom: 0px;
  margin-top: 0em;
  top: 0px;
  margin-bottom: 1rem;
  box-shadow: 0px 1px 2px 0 rgba(0, 0, 0, 0.13), none;
  border-radius: 0em 0em 0.30769em 0.30769em;
}
.ui[class*="bottom attached"].menu:last-child {
  margin-bottom: 0em;
}

/* Attached Menu Item */
.ui.top.attached.menu > .item:first-child {
  border-radius: 0.30769em 0em 0em 0em;
}
.ui.bottom.attached.menu > .item:first-child {
  border-radius: 0em 0em 0em 0.30769em;
}

/* Tabular Attached */
.ui.attached.menu:not(.tabular) {
  border: 1px solid #dddddd;
}
.ui.attached.inverted.menu {
  border: none;
}
.ui.attached.tabular.menu {
  margin-left: 0;
  margin-right: 0;
  width: 100%;
}

/*--------------
     Sizes
---------------*/

/* Small */
.ui.small.menu {
  font-size: 0.92307692rem;
}
.ui.small.vertical.menu {
  width: 13rem;
}

/* Medium */
.ui.menu {
  font-size: 1rem;
}
.ui.vertical.menu {
  width: 15rem;
}

/* Large */
.ui.large.menu {
  font-size: 1.15384615rem;
}
.ui.large.vertical.menu {
  width: 18rem;
}

/* Huge */
.ui.huge.menu {
  font-size: 1.46153846rem;
}
.ui.huge.vertical.menu {
  width: 20rem;
}

/*******************************
         Theme Overrides
*******************************/

/*!
 * # Semantic UI x.x - Feed
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Copyright 2015 Contributors
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */

/*******************************
         Activity Feed
*******************************/

.ui.feed {
  margin: 1em 0em;
}
.ui.feed:first-child {
  margin-top: 0em;
}
.ui.feed:last-child {
  margin-bottom: 0em;
}

/*******************************
            Content
*******************************/

/* Event */
.ui.feed > .event {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-direction: row;
      -ms-flex-direction: row;
          flex-direction: row;
  width: 100%;
  padding: 0.23076923rem 0em;
  margin: 0em;
  background: none;
  border-top: none;
}
.ui.feed > .event:first-child {
  border-top: 0px;
  padding-top: 0em;
}
.ui.feed > .event:last-child {
  padding-bottom: 0em;
}

/* Event Label */
.ui.feed > .event > .label {
  display: block;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: 2.5em;
  height: auto;
  -webkit-align-self: stretch;
      -ms-flex


.pos);
                                }
                            }
                        }
                    }
                }
            }
        }
        if(AscFormat.fApproxEqual(dResultY, this.startY))
        {
            dMinDy = 0;
        }

        let oMajorBounds = this.majorObject.getRectBounds();
        let oNearestSnapPos = this.drawingObjects.getSnapNearestPos(oMajorBounds.l + dCurDx, oMajorBounds.t + dCurDy);
        if(dMinDx === null || Math.abs(dMinDx) > SNAP_DISTANCE)
        {
            dMinDx = 0;
            if(oNearestSnapPos)
            {
                if(!AscFormat.fApproxEqual(dResultX, this.startX))
                {
                    let dDeltaX = oNearestSnapPos.x - oMajorBounds.x;
                    dMinDx = dDeltaX - dResultX + this.startX;
                }
            }
        }
        else
        {
            if(bIsSlide)
            {
                for(nSnapPos = 0; nSnapPos < aSnapX.length; ++nSnapPos)
                {
                    this.drawingObjects.getDrawingDocument().DrawVerAnchor(pageIndex, aSnapX[nSnapPos]);
                }

            }
        }

        if(dMinDy === null || Math.abs(dMinDy) > SNAP_DISTANCE)
        {
            dMinDy = 0;
            if(oNearestSnapPos)
            {
                if(!AscFormat.fApproxEqual(dResultY, this.startY))
                {
                    let dDeltaY = oNearestSnapPos.y - oMajorBounds.y;
                    dMinDy = dDeltaY - dResultY + this.startY;
                }
            }
        }
        else
        {
            if(bIsSlide)
            {
                for(nSnapPos = 0; nSnapPos < aSnapY.length; ++nSnapPos)
                {
                    this.drawingObjects.getDrawingDocument().DrawHorAnchor(pageIndex, aSnapY[nSnapPos]);
                }
            }
        }

        dDx = dResultX - this.startX + dMinDx;
        dDy = dResultY - this.startY + dMinDy;
        let oCheckPosition = this.drawingObjects.checkGraphicObjectPosition(this.rectX + dDx, this.rectY + dDy, this.rectW, this.rectH);
        for(nTrack = 0; nTrack < nTracksCount; ++nTrack)
        {
            aTracks[nTrack].track(dDx + oCheckPosition.x, dDy + oCheckPosition.y, pageIndex);
        }
        this.bSamePos = (AscFormat.fApproxEqual(dDx + oCheckPosition.x, 0) && AscFormat.fApproxEqual(dDy + oCheckPosition.y, 0));
        this.drawingObjects.updateOverlay();
    },

    onMouseUp: RotateState.prototype.onMouseUp
};

function PreMoveInGroupState(drawingObjects, group, startX, startY, ShiftKey, CtrlKey, majorObject,  majorObjectIsSelected)
{
    this.drawingObjects = drawingObjects;
    this.group = group;
    this.startX = startX;
    this.startY = startY;
    this.ShiftKey = ShiftKey;
    this.CtrlKey  = CtrlKey;
    this.majorObject = majorObject;
    this.majorObjectIsSelected = majorObjectIsSelected;
}

PreMoveInGroupState.prototype =
{
    onMouseDown: function(e, x,y,pageIndex)
    {},

    onMouseMove: function(e, x, y, pageIndex)
    {
        if(!e.IsLocked)
        {
            //todo: implement inheritance from AscCommon.CDrawingControllerStateBase
            return AscCommon.CDrawingControllerStateBase.proto


DateTime | Date and time of filing acceptance ReportDate | Date of the report Size | Size of the filing document  ### Date Format All dates must be provided in YYYY-MM-DD format  ### Form Types Form types can be provided as comma-separated values, e.g.: \"10-K,8-K,10-Q\"  :::tip For optimal performance, use date ranges and form types to narrow down your search :::
  ///
  /// Note: This method returns the HTTP [Response].
  ///
  /// Parameters:
  ///
  /// * [int] cik:
  ///   Filter by Central Index Key (CIK)
  ///
  /// * [String] ticker:
  ///   Filter by stock ticker symbol
  ///
  /// * [String] formType:
  ///   Filter by form type(s) (e.g., \"10-K\", \"8-K\"). Multiple values can be comma-separated
  ///
  /// * [String] fillingDateStart:
  ///   Filter by filling date start (inclusive), format YYYY-MM-DD
  ///
  /// * [String] fillingDateEnd:
  ///   Filter by filling date end (inclusive), format YYYY-MM-DD
  ///
  /// * [String] reportDateStart:
  ///   Filter by report date start (inclusive), format YYYY-MM-DD
  ///
  /// * [String] reportDateEnd:
  ///   Filter by report date end (inclusive), format YYYY-MM-DD
  ///
  /// * [String] itemsContain:
  ///   Filter filings where the 'Items' field contains the specified text
  ///
  /// * [int] pageSize:
  ///   Number of results per page (default: 50, max: 200)
  ///
  /// * [int] pageNumber:
  ///   Page number to retrieve (default: 1)
  ///
  /// * [DTOFilingSortBy] sortBy:
  ///   Field to sort results by (default: AccessionNumber)
  ///
  /// * [String] sortOrder:
  ///   Sort order (asc or desc, default: desc)
  Future<Response> v1FilingsGetWithHttpInfo({ int? cik, String? ticker, String? formType, String? fillingDateStart, String? fillingDateEnd, String? reportDateStart, String? reportDateEnd, String? itemsContain, int? pageSize, int? pageNumber, DTOFilingSortBy? sortBy, String? sortOrder, }) async {
    // ignore: prefer_const_declarations
    final path = r'/v1/filings';

    // ignore: prefer_final_locals
    Object? postBody;

    final queryParams = <QueryParam>[];
    final headerParams = <String, String>{};
    final formParams = <String, String>{};

    if (cik != null) {
      queryParams.addAll(_queryParams('', 'cik', cik));
    }
    if (ticker != null) {
      queryParams.addAll(_queryParams('', 'ticker', ticker));
    }
    if (formType != null) {
      queryParams.addAll(_queryParams('', 'form_type', formType));
    }
    if (fillingDateStart != null) {
      queryParams.addAll(_queryParams('', 'filling_date_start', fillingDateStart));
    }
    if (fillingDateEnd != null) {
      queryParams.addAll(_queryParams('', 'filling_date_end', fillingDateEnd));
    }
    if (reportDateStart != null) {
      queryParams.addAll(_queryParams('', 'report_date_start', reportDateStart));
    }
    if (reportDateEnd != null) {
      queryParams.addAll(_queryParams('', 'report_date_end', reportDateEnd));
    }
    if (itemsContain != null) {
      queryParams.addAll(_queryParams('', 'items_contain', itemsContain));
    }
    if (pageSize != null) {
      queryParams.addAll(_queryParams('', 'page_size', pageSize));
    }
    if (pageNumber != null) {
      queryParams.addAll(_queryParams('', 'page_number', pageNumber));
    }
    if (sortBy != null) {
      queryParams.addAll(_queryParams('', 'sort_by', sortBy));
    }
    if (sortOrder != null) {
      queryParams.addAll(_queryParams('', 'sort_order', sortOrder));


ms> service_terms_map = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   */
  boolean containsServiceTermsMap(java.lang.String key);

  /** Use {@link #getServiceTermsMapMap()} instead. */
  @java.lang.Deprecated
  java.util.Map<java.lang.String, com.google.cloud.discoveryengine.v1.Project.ServiceTerms>
      getServiceTermsMap();

  /**
   *
   *
   *

   * Output only. A map of terms of services. The key is the `id` of
   * [ServiceTerms][google.cloud.discoveryengine.v1.Project.ServiceTerms].
   *

   *
   *
   * map<string, .google.cloud.discoveryengine.v1.Project.ServiceTerms> service_terms_map = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   */
  java.util.Map<java.lang.String, com.google.cloud.discoveryengine.v1.Project.ServiceTerms>
      getServiceTermsMapMap();

  /**
   *
   *
   *

   * Output only. A map of terms of services. The key is the `id` of
   * [ServiceTerms][google.cloud.discoveryengine.v1.Project.ServiceTerms].
   *

   *
   *
   * map<string, .google.cloud.discoveryengine.v1.Project.ServiceTerms> service_terms_map = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   */
  /* nullable */
  com.google.cloud.discoveryengine.v1.Project.ServiceTerms getServiceTermsMapOrDefault(
      java.lang.String key,
      /* nullable */
      com.google.cloud.discoveryengine.v1.Project.ServiceTerms defaultValue);

  /**
   *
   *
   *

   * Output only. A map of terms of services. The key is the `id` of
   * [ServiceTerms][google.cloud.discoveryengine.v1.Project.ServiceTerms].
   *

   *
   *
   * map<string, .google.cloud.discoveryengine.v1.Project.ServiceTerms> service_terms_map = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   */
  com.google.cloud.discoveryengine.v1.Project.ServiceTerms getServiceTermsMapOrThrow(
      java.lang.String key);
}
/*
 * Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/cloud/discoveryengine/v1/serving_config.proto

// Protobuf Java Version: 3.25.8
package com.google.cloud.discoveryengine.v1;

public final class ServingConfigProto {
  private ServingConfigProto() {}

  public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {}

  public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
  }

  static final com.google.protobuf.Descriptors.Descriptor
      internal_static_google_


 message has a history of id generation
    return __auto_table_row_id.bumpUpPre();
  }

  /** exposed: assert something as truth */
  protected void __assert_truth(final boolean value, final int startLine, final int startPosition, final int endLine, final int endLinePosition) {
    __assertionTotal++;
    if (!value) {
      __assertionFailures++;
      if (__monitor != null) {
        __monitor.assertFailureAt(startLine, startPosition, endLine, endLinePosition, __assertionTotal, __assertionFailures);
      }
    }
  }

  public void __lateBind(String space, String key, Deliverer deliverer, ServiceRegistry registry) {
    this.__space = space;
    this.__key = key;
    this.__deliverer = deliverer;
    __link(registry);
    if (registry instanceof TestMockUniverse) {
      // this is related to testing such that blocks can play with services
      __mock_universe = (TestMockUniverse) registry;
    }
  }

  protected abstract void __link(ServiceRegistry registry);

  public abstract String __metrics();

  /** for Caller */
  @Override
  public Deliverer __getDeliverer() {
    return __deliverer;
  }

  /** Document.key(); */
  @Override
  public String __getKey() {
    return __key;
  }

  /** Document.space(); */
  @Override
  public String __getSpace() {
    return __space;
  }

  /** Document.seq() */
  public int __getSeq() {
    if (__seq_message != null) {
      return __seq_message;
    }
    return __seq.get();
  }

  /** code generate: get strings that are part of the document */
  public abstract Set<String> __get_intern_strings();

  /** commit the variables that were excluded in CodeGenRecords::canRevertOther */
  private void __internalCommit(JsonStreamWriter forward, JsonStreamWriter reverse) {
    __cache.__commit("__cache", forward, reverse);
    __auto_cache_id.__commit("__auto_cache_id", forward, reverse);
    __auto_gen.__commit("__auto_gen", forward, reverse);
    __timeouts.commit(forward, reverse);
    __webQueue.commit(forward, reverse);
    __replication.commit(forward, reverse);
    __enqueued.commit(forward, reverse);
    __graphMemory = __computeGraphs();
  }

  private boolean __again(boolean hasTimeouts) {
    return __state.has() || __enqueued.size() > 0 || hasTimeouts;
  }

  private int __deltaTime() {
    int t = Math.max(__state.has() ? 25 : 0, (int) Math.min((Integer.MAX_VALUE / 2), (long) __next_time.get() - __time.get()));
    if (__enqueued.size() > 0) {
      t = Math.min(25, t);
    }
    return t;
  }

  protected abstract long __computeGraphs();

  private LivingDocumentChange __invalidate_trailer(NtPrincipal who, final String request, boolean again, boolean againDueToPendingWork, Integer sleepTime) {
    final var forward = new JsonStreamWriter();
    final var reverse = new JsonStreamWriter();
    forward.beginObject();
    forward.writeObjectFieldIntro("__messages");
    forward.writeNull();
    reverse.beginObject();
    __timeouts.nuke(forward, reverse);
    __dumpMessages(reverse);
    __blocked.set(false);
    __seq.bumpUpPre();
    __entropy.set(Long.toString(__random.nextLong()));
    __futures.commit();
    __queue.clear();
    __cache.clear();
    __reset_future_queues();
    __internalCommit(forward, reverse);
    boolean hasTimeouts = __timeouts.needsInvalidationAndUpdateNext(__next_time);
    __commit(null, forward, reverse);
    forward.endObject();
    reverse.endObject();
    __graphMemory = __computeGraphs();
    List<LivingDocumentChange.Broadcast> broadcasts = __buildBroadcastListGame


70901.StartAccessLogging', JSON.stringify(requestBody), { headers: { 'Content-Type': 'application/json;charset=UTF-8' } });
		}

		/**
		 * Stops access logging on the specified container. When you stop access logging on a container, MediaStore stops sending access logs to Amazon CloudWatch Logs. These access logs are not saved and are not retrievable.
		 * Post #X-Amz-Target=MediaStore_20170901.StopAccessLogging
		 * @return {StopAccessLoggingOutput} Success
		 */
		StopAccessLogging(requestBody: StopAccessLoggingInput): Observable<StopAccessLoggingOutput> {
			return this.http.post<StopAccessLoggingOutput>(this.baseUri + '#X-Amz-Target=MediaStore_20170901.StopAccessLogging', JSON.stringify(requestBody), { headers: { 'Content-Type': 'application/json;charset=UTF-8' } });
		}

		/**
		 * Adds tags to the specified AWS Elemental MediaStore container. Tags are key:value pairs that you can associate with AWS resources. For example, the tag key might be "customer" and the tag value might be "companyA." You can specify one or more tags to add to each container. You can add up to 50 tags to each container. For more information about tagging, including naming and usage conventions, see Tagging Resources in MediaStore.
		 * Post #X-Amz-Target=MediaStore_20170901.TagResource
		 * @return {TagResourceOutput} Success
		 */
		TagResource(requestBody: TagResourceInput): Observable<TagResourceOutput> {
			return this.http.post<TagResourceOutput>(this.baseUri + '#X-Amz-Target=MediaStore_20170901.TagResource', JSON.stringify(requestBody), { headers: { 'Content-Type': 'application/json;charset=UTF-8' } });
		}

		/**
		 * Removes tags from the specified container. You can specify one or more tags to remove.
		 * Post #X-Amz-Target=MediaStore_20170901.UntagResource
		 * @return {UntagResourceOutput} Success
		 */
		UntagResource(requestBody: UntagResourceInput): Observable<UntagResourceOutput> {
			return this.http.post<UntagResourceOutput>(this.baseUri + '#X-Amz-Target=MediaStore_20170901.UntagResource', JSON.stringify(requestBody), { headers: { 'Content-Type': 'application/json;charset=UTF-8' } });
		}
	}

	export enum CreateContainerX_Amz_Target { MediaStore_20170901_CreateContainer = 0 }

	export enum DeleteContainerX_Amz_Target { MediaStore_20170901_DeleteContainer = 0 }

	export enum DeleteContainerPolicyX_Amz_Target { MediaStore_20170901_DeleteContainerPolicy = 0 }

	export enum DeleteCorsPolicyX_Amz_Target { MediaStore_20170901_DeleteCorsPolicy = 0 }

	export enum DeleteLifecyclePolicyX_Amz_Target { MediaStore_20170901_DeleteLifecyclePolicy = 0 }

	export enum DeleteMetricPolicyX_Amz_Target { MediaStore_20170901_DeleteMetricPolicy = 0 }

	export enum DescribeContainerX_Amz_Target { MediaStore_20170901_DescribeContainer = 0 }

	export enum GetContainerPolicyX_Amz_Target { MediaStore_20170901_GetContainerPolicy = 0 }

	export enum GetCorsPolicyX_Amz_Target { MediaStore_20170901_GetCorsPolicy


 addConfigsSuccessAction: AddConfigurationSuccessAction = {
            type: ActionTypeKeys.ADD_CONFIGURATION_SUCCESS,
            id: testNewConfig._id
        };

        expect(configurationReducer(defaultEmptyState, addConfigsSuccessAction))
            .toEqual(toState);
    });

    it("UPDATE PERFORMANCE TEST", () => {

        var mapArray = [];
        const oneMillion = 1000000;
        for (var i = 0; i < oneMillion; i++) {
            var indexAsString: string = i.toString();
            var newConfig: IConfiguration = {
                _id: indexAsString,
                name: 'This is a test name',
                description: 'This is a test description',
            };
            mapArray.push([newConfig._id, new ConfigurationRecord(newConfig)]);
        }
        const map = Map<string, ConfigurationRecord>(mapArray);

        const updateAction: UpdateConfigurationAction = {
            type: ActionTypeKeys.UPDATE_CONFIGURATION,
            configId: "13",
            propertyName: "name",
            newValue: "Funky Monkey App",
            oldValue: "Funky Mongoose App"
        };

        const start = now()
        const whoCares = configurationReducer(map, updateAction);
        const end = now()
        const ms = end - start;
        console.log(`Update took ${ms.toFixed(3)} milliseconds.`);
        expect(ms).toBeLessThan(1);
    });
});
import { DataFrame, Node } from "../../../src";

export class ComputingNode extends Node<DataFrame, DataFrame> {
    private _computations: number;

    constructor(computations: number = 10) {
        super();
        this._computations = computations;
        this.on('push', this.onPush.bind(this));
    }

    public onPush(frame: DataFrame): Promise<void> {
        return new Promise((resolve) => {
            this.listPrimes(this._computations);
            this.outlets.forEach(outlet => outlet.push(frame));
            resolve();
        });
    }

    private listPrimes(nPrimes: number) {
        var primes = [];
        for( var n = 2;  nPrimes > 0;  n++ ) {
            if(this.isPrime(n)) {
                primes.push(n);
                --nPrimes;
            }
        }
        return primes;
    }

    private isPrime(n: number) {
        var max = Math.sqrt(n);
        for( var i = 2;  i <= max;  i++ ) {
            if( n % i === 0 )
                return false;
        }
        return true;
    }

}
import { randomBetween } from './RandomHelper'

describe('the randomBetween function', () => {
  let defaultGlobalMath;

  beforeAll(() => {
    // Store default global Math to reset when tests are done
    defaultGlobalMath = global.Math;
  });

  afterAll(() => {
    // Restore default global Math after tests are done.
    global.Math = defaultGlobalMath;
  });

  it('0 if both low and high are 0', () => {
    const result = randomBetween(0, 0);

    expect(result).toBe(0);
  });

  it('a constant value if both high and low are the same', () => {
    const result = randomBetween(2, 2);

    expect(result).toBe(2);
  });

  it('returns the low value if randomly rolling a zero', () => {
    // Mock Math.random to always return 0
    // This will ensure we get the lowest possible "random" number.
    _setUpMockMath(0);
    const expectedLow = 10;
    const result = randomBetween(expectedLow, 100);

    expect(result).toEqual(expectedLow);
  });

  it('returns the high value if randomly rolling a one', () => {
    // Mock Math.random to always return 1
    // This will ensure we get the highest possible "random" number.
    _setUpMockMath(1);
    const expected


EC6D8073B4BE24F3D72707031CA836FD69296D69B0DB60C830DAB46D1D2C7879DCE2AB85EDC3F2C34",
            "testPassed": true
          },
          {
            "tcId": 210,
            "qx": "8DD086A1332A3032C63D6EEBA670940649349DC6513B2FEE9B11BD18E4386D48CA96B4C0C49AF5C4762A6A691ECAAD9A",
            "qy": "C09395102CA5AD42ED74C66E4290C5B28FEF29C59D5F7A70E6F73C1752A63DDB7D076CFFF49B9FF4C2F557369D51709A",
            "r": "CE31224314E96445C704F8E246EB1AB5D7F3CE05265F7BCBC7A3FDF2D893BE4A914031A703E506E5942CF419536D5276",
            "s": "040192779E27122FB98E64A23CE02880DCAEB06EF6173E2D3D6E927283B0E0F094871AAEEB83A346AC1130F27FF90EA3",
            "message": "C7E9C5DE30356479904E4F2185A68D81D621524F1A194A85C215EF3E682D6A9648F53CEDDF5AC4802A16029387B3EDAC38A4518AAB27FF03D6A438F5B58E8F93E2D6D47353C62627ABFD77191D212AFA0AA5CCF8C14C6C1D6890B40681707EA12F20B5B1AEF851059D12D6184467948BAAB965342FBFB49787836BA5CCC43982",
            "testPassed": true
          }
        ]
      },
      {
        "tgId": 15,
        "hashAlg": "SHA2-384",
        "curve": "P-384",
        "tests": [
          {
            "tcId": 211,
            "qx": "57E7E2F8843E49BE1B8AD51CE84648FC72290CE6F7EFBF8D5F6E1FACC35AF26AC1B9069BD79CEC6112F957CE3FAD821E",
            "qy": "04ED2D350635D2710AF4B3F7BE8D81AC652F12F36769523EB7A0343A09DE9E71D6AD2E34545DDD91820387966F42F749",
            "r": "9C41BCF15669FF529B24C530670333983F44693211FB9B87BD6DF3B203D1EC2A1539FE8C39493B798BFD2D937B05A613",
            "s": "533A598B7CD6469F016BAA31DCA88822DDB7BF2DDD9DEF9D761633F768BC4FD28F757DA54DE0C38B89CC7811524129B8",
            "message": "FEE412BC2D4A22C7C08C85EE71710A5E7C0690BD571E53C5E9737C6F4DCCE92C3575C7D5EA77CD9AC0D98EA7750CCDD9C71E2160E32377C5BAFC33FBE4E2A04F34FBFA3F4BD27C9E6674E1CFE40DC11D6F6051ED1B1E2730B412A76715340EA1A873B537293C39190C3D7E0B542BD861644930F38448C2EA32247B84EB89DCE5",


feature = "android-bluetooth-BluetoothGatt", feature = "android-bluetooth-BluetoothGattCallback", feature = "android-content-Context")))]
        pub fn connectGatt_Context_boolean_BluetoothGattCallback_int_int<'env>(&'env self, arg0: impl __jni_bindgen::std::convert::Into<__jni_bindgen::std::option::Option<&'env crate::android::content::Context>>, arg1: bool, arg2: impl __jni_bindgen::std::convert::Into<__jni_bindgen::std::option::Option<&'env crate::android::bluetooth::BluetoothGattCallback>>, arg3: i32, arg4: i32) -> __jni_bindgen::std::result::Result<__jni_bindgen::std::option::Option<__jni_bindgen::Local<'env, crate::android::bluetooth::BluetoothGatt>>, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
            // class.path == "android/bluetooth/BluetoothDevice", java.flags == PUBLIC, .name == "connectGatt", .descriptor == "(Landroid/content/Context;ZLandroid/bluetooth/BluetoothGattCallback;II)Landroid/bluetooth/BluetoothGatt;"
            unsafe {
                let __jni_args = [__jni_bindgen::AsJValue::as_jvalue(&arg0.into()), __jni_bindgen::AsJValue::as_jvalue(&arg1), __jni_bindgen::AsJValue::as_jvalue(&arg2.into()), __jni_bindgen::AsJValue::as_jvalue(&arg3), __jni_bindgen::AsJValue::as_jvalue(&arg4)];
                let __jni_env = __jni_bindgen::Env::from_ptr(self.0.env);
                let (__jni_class, __jni_method) = __jni_env.require_class_method("android/bluetooth/BluetoothDevice\0", "connectGatt\0", "(Landroid/content/Context;ZLandroid/bluetooth/BluetoothGattCallback;II)Landroid/bluetooth/BluetoothGatt;\0");
                __jni_env.call_object_method_a(self.0.object, __jni_method, __jni_args.as_ptr())
            }
        }

        /// [connectGatt](https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#connectGatt(android.content.Context,%20boolean,%20android.bluetooth.BluetoothGattCallback,%20int,%20int,%20android.os.Handler))
        ///
        /// Required features: "android-bluetooth-BluetoothGatt", "android-bluetooth-BluetoothGattCallback", "android-content-Context", "android-os-Handler"
        #[cfg(any(feature = "all", all(feature = "android-bluetooth-BluetoothGatt", feature = "android-bluetooth-BluetoothGattCallback", feature = "android-content-Context", feature = "android-os-Handler")))]
        pub fn connectGatt_Context_boolean_BluetoothGattCallback_int_int_Handler<'env>(&'env self, arg0: impl __jni_bindgen::std::convert::Into<__jni_bindgen::std::option::Option<&'env crate::android::content::Context>>, arg1: bool, arg2: impl __jni_bindgen::std::convert::Into<__jni_bindgen::std::option::Option<&'env crate::android::bluetooth::BluetoothGattCallback>>, arg3: i32, arg4: i32, arg5: impl __jni_bindgen::std::convert::Into<__jni_bindgen::std::option::Option<&'env crate::android::os::Handler>>) -> __jni_bindgen::std::result::Result<__jni_bindgen::std::option::Option<__jni_bindgen::Local<'env, crate::android::bluetooth::BluetoothGatt>>, __jni_bindgen::Local<'env, crate::java::lang::


["\\brapers\\b"],["\\brapes\\b"],["\\braping\\b"],["\\brapist\\b"],["^revenge porn$"],["\\brlotm\\b"],["\\bscat\\b"],["\\bscatophilia\\b"],["\\bscatted\\b"],["\\bscatting\\b"],["\\bschool kid\\b"],["\\bsedate\\b"],["\\bsedated\\b"],["\\bsedately\\b"],["\\bsedateness\\b"],["\\bsedates\\b"],["\\bsedating\\b"],["\\bsedation\\b"],["\\bsex trafficking\\b"],["\\bShit\\b"],["\\bShitfaced\\b"],["^sild tork mada$"],["\\bsmall kid\\b"],["\\bsnuff\\b"],["\\bsnuffed\\b"],["\\bsnuffs\\b"],["^soochi mukhi lorm$"],["^T3FT0P$"],["\\btanked\\b"],["\\bTeeny Bopper\\b"],["\\bteeny boppers\\b"],["\\bTeeny\\-bopper\\b"],["\\bteeny\\-boppers\\b"],["\\bTeenybopper\\b"],["\\bteenyboppers\\b"],["\\btentacle\\b"],["\\bTentacled\\b"],["\\btentacles\\b"],["\\btipsier\\b"],["\\btipsiest\\b"],["\\bTipsy\\b"],["\\btrafficked\\b"],["\\bturd\\b"],["\\btween\\b"],["\\bTwins\\b"],["\\bunconscious\\b"],["\\bunconsciousness\\b"],["\\bunder 1 boy\\b"],["\\bunder 1 girl\\b"],["\\bunder 1 porn\\b"],["\\bunder 1 sex\\b"],["\\bunder 10 boy\\b"],["\\bunder 10 girl\\b"],["\\bunder 10 porn\\b"],["\\bunder 10 sex\\b"],["\\bunder 11 boy\\b"],["\\bunder 11 girl\\b"],["\\bunder 11 porn\\b"],["\\bunder 11 sex\\b"],["\\bunder 12 boy\\b"],["\\bunder 12 girl\\b"],["\\bunder 12 porn\\b"],["\\bunder 12 sex\\b"],["\\bunder 13 boy\\b"],["\\bunder 13 girl\\b"],["\\bunder 13 porn\\b"],["\\bunder 13 sex\\b"],["\\bunder 14 boy\\b"],["\\bunder 14 girl\\b"],["\\bunder 14 porn\\b"],["\\bunder 14 sex\\b"],["\\bunder 15 boy\\b"],["\\bunder 15 girl\\b"],["\\bunder 15 porn\\b"],["\\bunder 15 sex\\b"],["\\bunder 16 boy\\b"],["\\bunder 16 girl\\b"],["\\bunder 16 porn\\b"],["\\bunder 16 sex\\b"],["\\bunder 2 boy\\b"],["\\bunder 2 girl\\b"],["\\bunder 2 porn\\b"],["\\bunder 2 sex\\b"],["\\bunder 3 boy\\b"],["\\bunder 3 girl\\b"],["\\bunder 3 porn\\b"],["\\bunder 3 sex\\b"],["\\bunder 4 boy\\b"],["\\bunder 4 girl\\b"],["\\bunder 4 porn\\b"],["\\bunder 4 sex\\b"],["\\bunder 5 boy\\b"],["\\bunder 5 girl\\b"],["\\bunder 5 porn\\b"],["\\bunder 5 sex\\b"],["\\bunder 6 boy\\b"],["\\bunder 6 girl\\b"],["\\bunder 6 porn\\b"],["\\bunder 6 sex\\b"],["\\bunder 7 boy\\b"],["\\bunder 7 girl\\b"],["\\bunder 7 porn\\b"],["\\bunder 7 sex\\b"],["\\bunder 8 boy\\b"],["\\bunder 8 girl\\b"],["\\bunder 8 porn\\b"],["\\bunder 8 sex\\b"],["\\bunder 9 boy\\b"],["\\bund


// Used to parameterize a list of values for an IN clause in a SQLite query.
// Given a list of values, ["apple", "berry", "cherry"], and a prefix, "f",
// the function will return the query string "(f0, f1, f2)" and the params slice
// []interface{}{sql.Named("f0", "apple"), sql.Named("f1", "berry"), sql.Named("f2", "cherry")}.
// The placeholders are used to prevent SQL injection attacks and the query string can
// be appended to a query such as "SELECT * FROM fruits WHERE name IN ".
func listParametrize(values []string, prefix string) (query string, params []interface{}) {
	placeholders := make([]string, 0, len(values))
	params = make([]interface{}, 0, len(values))
	for i, param := range values {
		placeholder := fmt.Sprintf("%s%d", prefix, i)
		placeholders = append(placeholders, ":"+placeholder)
		params = append(params, sql.Named(placeholder, param))
	}
	return "(" + strings.Join(placeholders, ", ") + ")", params
}

func dbe(err error) error {
	if err == nil {
		return nil
	}

	if errors.Is(err, sql.ErrNoRows) {
		return dberr.ErrNotFound
	}

	var sqliteErr sqlite3.Error
	if errors.As(err, &sqliteErr) {
		if errors.Is(sqliteErr.Code, sqlite3.ErrConstraint) {
			// TODO: (ticket sc-32339) requires a minor fix to increase
			// the granularity of the returned error because ErrConstraint
			// can be a result of different types of constraint errors
			return dberr.ErrAlreadyExists
		}
	}

	return fmt.Errorf("sqlite3 error: %w", err)
}
package sqlite

import (
	"context"
	"database/sql"
	"net/url"
	"regexp"
	"sort"
	"strings"

	"github.com/lithammer/fuzzysearch/fuzzy"
	"github.com/rs/zerolog/log"
	"go.rtnl.ai/ulid"

	"github.com/trisacrypto/envoy/pkg/logger"
	"github.com/trisacrypto/envoy/pkg/store/models"
)

//===========================================================================
// Similarity Threshold
//===========================================================================

var threshold float64 = 0.0

// SetThreshold sets the threshold for the fuzzy search. The threshold must be a number
// between 0.0 and 1.0 where a higher threshold requires stricter matching. Setting a
// threshold of 0.0 will allow any rank fold matches.
func SetThreshold(t float64) {
	if t < 0.0 || t > 1.0 {
		panic("threshold must be between 0.0 and 1.0")
	}
	threshold = t
}

// GetThreshold returns the current threshold for the fuzzy search.
func GetThreshold() float64 {
	return threshold
}

//===========================================================================
// Counterparty Fuzzy Search
//===========================================================================

const (
	counterpartySearchSQL       = "SELECT id, name FROM counterparties ORDER BY name ASC"
	counterpartyDomainSearchSQL = "SELECT id, website FROM counterparties WHERE website LIKE :domainParam UNION select id, endpoint FROM counterparties WHERE endpoint LIKE :domainParam"
	counterpartySearchExpandSQL = "SELECT id, source, protocol, endpoint, name, website, country, verified_on, created FROM counterparties WHERE id=:id"
)

// SearchCounterparties uses an in-memory fuzzy search to find counterparties whose name
// matches the query using a unicode normalization, case-insensitive method. Additionally,
// if the query looks like a URL, it will also search for counterparties whose website or
// endpoint matches the query. The results are sorted by the distance of the match, with
// the closest ma


this.circleSize,
    this.onColorChoose,
    this.isSelected = false,
    this.elevation = _kColorElevation,
    this.iconSelected,
  })  : assert(circleSize >= 0, "You must provide a positive size"),
        assert(!isSelected || (isSelected && iconSelected != null)),
        super(key: key);

  @override
  Widget build(BuildContext context) {
    final brightness = ThemeData.estimateBrightnessForColor(color);
    final icon = brightness == Brightness.light ? Colors.black : Colors.white;

    return GestureDetector(
      onTap: onColorChoose != null ? () => onColorChoose!(color) : null,
      child: Material(
        elevation: elevation ?? _kColorElevation,
        shape: const CircleBorder(),
        child: CircleAvatar(
          radius: circleSize / 2,
          backgroundColor: color,
          child: isSelected ? Icon(iconSelected, color: icon) : null,
        ),
      ),
    );
  }
}
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:introduction_screen/introduction_screen.dart';

void main() => runApp(const App());

const backgroundImage = 'assets/fullscreen.jpg';

class App extends StatelessWidget {
  const App({super.key});

  @override
  Widget build(BuildContext context) {
    SystemChrome.setSystemUIOverlayStyle(
      SystemUiOverlayStyle.dark.copyWith(statusBarColor: Colors.transparent),
    );

    return MaterialApp(
      title: 'Introduction screen',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(primarySwatch: Colors.blue, useMaterial3: true),
      home: const OnBoardingPage(),
    );
  }
}

class OnBoardingPage extends StatefulWidget {
  const OnBoardingPage({super.key});

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

class OnBoardingPageState extends State<OnBoardingPage> {
  final introKey = GlobalKey<IntroductionScreenState>();

  void _onIntroEnd(BuildContext context) {
    Navigator.of(context).pushReplacement(
      MaterialPageRoute(builder: (_) => const HomePage()),
    );
  }

  Widget _buildImage(String assetName, [double width = 350]) {
    return Image.asset('assets/$assetName', width: width);
  }

  @override
  Widget build(BuildContext context) {
    const bodyStyle = TextStyle(fontSize: 19.0);

    const pageDecoration = PageDecoration(
      titleTextStyle: TextStyle(fontSize: 28.0, fontWeight: FontWeight.w700),
      bodyTextStyle: bodyStyle,
      bodyPadding: EdgeInsets.fromLTRB(16.0, 0.0, 16.0, 16.0),
      pageColor: Colors.white,
      imagePadding: EdgeInsets.zero,
    );

    return IntroductionScreen(
      key: introKey,
      globalBackgroundColor: Colors.white,
      allowImplicitScrolling: true,
      autoScrollDuration: 3000,
      infiniteAutoScroll: true,
      globalHeader: Align(
        alignment: Alignment.topRight,
        child: SafeArea(
          child: Padding(
            padding: const EdgeInsets.only(top: 16, right: 16),
            child: _buildImage('flutter.png', 100),
          ),
        ),
      ),
      globalFooter: SizedBox(
        width: double.infinity,
        height: 60,
        child: ElevatedButton(
          child: const Text


inline]
    pub fn is_wiredanddrive(&self) -> bool {
        *self == MODE13R::WIREDANDDRIVE
    }
    #[doc = "Checks if the value of the field is `WIREDANDDRIVEFILTER`"]
    #[inline]
    pub fn is_wiredanddrivefilter(&self) -> bool {
        *self == MODE13R::WIREDANDDRIVEFILTER
    }
    #[doc = "Checks if the value of the field is `WIREDANDDRIVEPULLUP`"]
    #[inline]
    pub fn is_wiredanddrivepullup(&self) -> bool {
        *self == MODE13R::WIREDANDDRIVEPULLUP
    }
    #[doc = "Checks if the value of the field is `WIREDANDDRIVEPULLUPFILTER`"]
    #[inline]
    pub fn is_wiredanddrivepullupfilter(&self) -> bool {
        *self == MODE13R::WIREDANDDRIVEPULLUPFILTER
    }
}
#[doc = "Possible values of the field `MODE14`"]
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum MODE14R {
    #[doc = "Input disabled. Pullup if DOUT is set."]
    DISABLED,
    #[doc = "Input enabled. Filter if DOUT is set"]
    INPUT,
    #[doc = "Input enabled. DOUT determines pull direction"]
    INPUTPULL,
    #[doc = "Input enabled with filter. DOUT determines pull direction"]
    INPUTPULLFILTER,
    #[doc = "Push-pull output"]
    PUSHPULL,
    #[doc = "Push-pull output with drive-strength set by DRIVEMODE"]
    PUSHPULLDRIVE,
    #[doc = "Wired-or output"]
    WIREDOR,
    #[doc = "Wired-or output with pull-down"]
    WIREDORPULLDOWN,
    #[doc = "Open-drain output"]
    WIREDAND,
    #[doc = "Open-drain output with filter"]
    WIREDANDFILTER,
    #[doc = "Open-drain output with pullup"]
    WIREDANDPULLUP,
    #[doc = "Open-drain output with filter and pullup"]
    WIREDANDPULLUPFILTER,
    #[doc = "Open-drain output with drive-strength set by DRIVEMODE"]
    WIREDANDDRIVE,
    #[doc = "Open-drain output with filter and drive-strength set by DRIVEMODE"]
    WIREDANDDRIVEFILTER,
    #[doc = "Open-drain output with pullup and drive-strength set by DRIVEMODE"]
    WIREDANDDRIVEPULLUP,
    #[doc = "Open-drain output with filter, pullup and drive-strength set by DRIVEMODE"]
    WIREDANDDRIVEPULLUPFILTER,
}
impl MODE14R {
    #[doc = r" Value of the field as raw bits"]
    #[inline]
    pub fn bits(&self) -> u8 {
        match *self {
            MODE14R::DISABLED => 0,
            MODE14R::INPUT => 0x01,
            MODE14R::INPUTPULL => 0x02,
            MODE14R::INPUTPULLFILTER => 0x03,
            MODE14R::PUSHPULL => 0x04,
            MODE14R::PUSHPULLDRIVE => 0x05,
            MODE14R::WIREDOR => 0x06,
            MODE14R::WIREDORPULLDOWN => 0x07,
            MODE14R::WIREDAND => 0x08,
            MODE14R::WIREDANDFILTER => 0x09,
            MODE14R::WIREDANDPULLUP => 0x0a,
            MODE14R::WIREDANDPULLUPFILTER => 0x0b,
            MODE14R::WIREDANDDRIVE => 0x0c,
            MODE14R::WIREDANDDRIVEFILTER => 0x0d,


from binance.lib.utils import check_required_parameter

def nft_transaction_history(self, orderType: int, **kwargs):
    """Get NFT Transaction History (USER_DATA)

    GET /sapi/v1/nft/history/transactions

    https://binance-docs.github.io/apidocs/spot/en/#get-nft-transaction-history-user_data

    Args:
      orderType (int): 0: purchase order, 1: sell order, 2: royalty income, 3: primary market order, 4: mint fee
    Keyword Args:
      startTime (int, optional)
      endTime (int, optional)
      limit (int, optional): Default 50, Max 50
      page (int, optional): Default 1
      recvWindow (int, optional): The value cannot be greater than 60000
    """
    check_required_parameter(orderType, "orderType")
    params = {"orderType": orderType, **kwargs}
    return self.sign_request("GET", "/sapi/v1/nft/history/transactions", params)

def nft_deposit_history(self, **kwargs):
    """Get NFT Deposit History(USER_DATA)

    GET /sapi/v1/nft/history/deposit

    https://binance-docs.github.io/apidocs/spot/en/#get-nft-deposit-history-user_data

    Keyword Args:
      startTime (int, optional)
      endTime (int, optional)
      limit (int, optional): Default 50, Max 50
      page (int, optional): Default 1
      recvWindow (int, optional): The value cannot be greater than 60000
    """

    return self.sign_request("GET", "/sapi/v1/nft/history/deposit", kwargs)

def nft_withdraw_history(self, **kwargs):
    """Get NFT Withdraw History (USER_DATA)

    GET /sapi/v1/nft/history/withdraw

    https://binance-docs.github.io/apidocs/spot/en/#get-nft-withdraw-history-user_data

    Keyword Args:
      startTime (int, optional)
      endTime (int, optional)
      limit (int, optional): Default 50, Max 50
      page (int, optional): Default 1
      recvWindow (int, optional): The value cannot be greater than 60000
    """

    return self.sign_request("GET", "/sapi/v1/nft/history/withdraw", kwargs)

def nft_asset(self, **kwargs):
    """Get NFT Asset (USER_DATA)

    GET /sapi/v1/nft/user/getAsset

    https://binance-docs.github.io/apidocs/spot/en/#get-nft-asset-user_data

    Keyword Args:
      limit (int, optional): Default 50, Max 50
      page (int, optional): Default 1
      recvWindow (int, optional): The value cannot be greater than 60000
    """

    return self.sign_request("GET", "/sapi/v1/nft/user/getAsset", kwargs)


, ["yuān"], ["mò"], ["bái"]],
"沉鱼落雁": [["chén"], ["yú"], ["luò"], ["yàn"]],
"沉冤莫雪": [["chén"], ["yuān"], ["mò"], ["xuě"]],
"沉重寡言": [["chén"], ["zhòng"], ["guǎ"], ["yán"]],
"沉重少言": [["chén"], ["zhòng"], ["shǎo"], ["yán"]],
"沉著痛快": [["chén"], ["zhù"], ["tòng"], ["kuài"]],
"沉着痛快": [["chén"], ["zhuó"], ["tòng"], ["kuài"]],
"陈陈相因": [["chén"], ["chén"], ["xiāng"], ["yīn"]],
"陈词滥调": [["chén"], ["cí"], ["làn"], ["diào"]],
"陈辞滥调": [["chén"], ["cí"], ["làn"], ["diào"]],
"陈古刺今": [["chén"], ["gǔ"], ["cì"], ["jīn"]],
"陈善闭邪": [["chén"], ["shàn"], ["bì"], ["xié"]],
"陈述句": [["chén"], ["shù"], ["jù"]],
"晨参暮礼": [["chén"], ["cān"], ["mù"], ["lǐ"]],
"晨参暮省": [["chén"], ["cān"], ["mù"], ["shěng"]],
"晨昏定省": [["chén"], ["hūn"], ["dìng"], ["xǐng"]],
"晨提夕命": [["chén"], ["tí"], ["xī"], ["mìng"]],
"晨兴夜寐": [["chén"], ["xīng"], ["yè"], ["mèi"]],
"闯南走北": [["chuǎng"], ["nán"], ["zǒu"], ["běi"]],
"称柴而爨": [["chēng"], ["chái"], ["ér"], ["cuàn"]],
"称臣纳贡": [["chēng"], ["chén"], ["nà"], ["gòng"]],
"称德度功": [["chēng"], ["dé"], ["duó"], ["gōng"]],
"称功颂德": [["chēng"], ["gōng"], ["sòng"], ["dé"]],
"称家有无": [["chèn"], ["jiā"], ["yǒu"], ["wú"]],
"称孤道寡": [["chēng"], ["gū"], ["dào"], ["guǎ"]],
"称奇道绝": [["chēng"], ["qí"], ["dào"], ["jué"]],
"称赏不已": [["chēng"], ["shǎng"], ["bù"], ["yǐ"]],
"称体裁衣": [["chèn"], ["tǐ"], ["cái"], ["yī"]],
"称体载衣": [["chèn"], ["tǐ"], ["cái"], ["yī"]],
"称王称霸": [["chēng"], ["wáng"], ["chēng"], ["bà"]],
"称贤荐能": [["chēng"], ["xián"], ["jiàn"], ["néng"]],
"称心快意": [["chèn"], ["xīn"], ["kuài"], ["yì"]],
"称心满意": [["chèn"], ["xīn"], ["mǎn"], ["yì


珍妮拉·鋼錘。"}, {"將8塊毛皮護甲片和8塊重型護甲片交給佐拉蟲巢附近的珍妮拉·鋼錘。你還必須將後勤任務簡報 VII帶去才能完成這個任務。"}},
[8781] = {"戰場上的武器", {"鐵爐堡軍旅對我們在希利蘇斯的戰鬥很有價值。不幸地，他們很多補給都在來這裡的路上弄丟了。取得一批武器並送給佐拉蟲巢附近的珍妮拉·鋼錘。"}, {"將2把月鋼寬劍帶到佐拉蟲巢外的鐵爐堡軍旅前哨給珍妮拉·鋼錘。你還必須將後勤任務簡報 VI帶去才能完成這個任務。"}},
[8782] = {"制服供應", {"最近不斷加入的志願者導致我們制服短缺。去搜集一些制服的材料，然後把它們交給喚風者傲角。"}, {"把1塊月布、2卷符文布卷和1份鐵網蛛絲交給喚風者傲角。你還必須將後勤任務簡報 VIII帶去才能完成這個任務。"}},
[8783] = {"特殊的材料", {"塞納里奧城堡的鐵匠，瓦古斯，需要附魔材料為我們的軍隊製作強大的武器。取得這些東西並直接帶給瓦古斯，塞納里奧城堡的軍隊才能裝備齊全。"}, {"帶2個附魔瑟銀錠和2塊附魔皮革到希利蘇斯給塞納里奧城堡的瓦古斯。你還必須將後勤任務簡報 IX帶去才能完成這個任務。"}},
[8784] = {"其拉軍的秘密", {"你發現了一個上古其拉神器!或許神廟入口附近的巨龍之一需要這個聖物。"}, {"將這個上古其拉神器帶給藏在神廟入口附近的巨龍。"}},
[8785] = {"奧格瑪軍團需要魔精油!", {"奧格瑪軍團需要幾種特別的材料。依他們在希利蘇斯的現況，我們希望能越快完成他們的要求越好。收集這些材料並帶給一個叫沙艾的食人妖。"}, {"帶6瓶強力魔精油，6瓶大魔精


br-testimonial .panel-item {
  background-color: #ffffff;
}
.cid-qpgOWqRveh .mbr-testimonial .card-block {
  -webkit-flex-grow: 0;
  flex-grow: 0;
  padding: 2.4rem 2.4rem 0 2.4rem;
}
.cid-qpgOWqRveh .mbr-testimonial .card-block .testimonial-photo {
  display: inline-block;
  width: 120px;
  height: 120px;
  margin-bottom: 1.6rem;
  overflow: hidden;
  border-radius: 50%;
}
.cid-qpgOWqRveh .mbr-testimonial .card-block .testimonial-photo img {
  width: 100%;
  min-width: 100%;
  min-height: 100%;
}
.cid-qpgOWqRveh .mbr-testimonial .card-footer {
  padding-bottom: 2.4rem;
  border-top: 0;
  padding-top: 1rem;
  word-wrap: break-word;
  word-break: break-word;
  background: none;
}
.cid-qpgOXa3hjk {
  padding-top: 0px;
  padding-bottom: 0px;
  background-color: #f3f4f6;
}
.cid-qpgOXa3hjk .testimonial-text {
  font-style: italic;
  color: #676767;
  font-weight: 300;
}
.cid-qpgOXa3hjk .mbr-author-name {
  font-weight: bold;
  color: #232;
}
.cid-qpgOXa3hjk .mbr-author-desc {
  color: #232;
}
.cid-qq0kGv90gM {
  padding-top: 60px;
  padding-bottom: 60px;
  background-image: url("../../../assets/images/background3.jpg");
}
.cid-qq0kGv90gM .testimonials-container {
  margin: 0 auto;
}
.cid-qq0kGv90gM .testimonials-container .testimonials-item {
  justify-content: center;
  margin-top: 3rem;
}
.cid-qq0kGv90gM .testimonials-container .testimonials-item .user {
  background: #ffffff;
}
.cid-qq0kGv90gM .testimonials-container .testimonials-item .user.row {
  margin: 0;
}
.cid-qq0kGv90gM .testimonials-container .testimonials-item .user .user_image {
  width: 150px;
  height: 150px;
  overflow: hidden;
  margin: 2rem auto 2rem auto;
}
.cid-qq0kGv90gM .testimonials-container .testimonials-item .user .user_image img {
  width: 100%;
  min-width: 100%;
  min-height: 100%;
}
.cid-qq0kGv90gM .testimonials-container .testimonials-item .user .testimonials-caption {
  padding: 2rem;
  padding: 2rem 2rem 2rem 0;
}
@media (max-width: 230px) {
  .cid-qq0kGv90gM .user_image {
    width: 100% !important;
    height: auto !important;
  }
}
@media (max-width: 767px) {
  .cid-qq0kGv90gM .testimonials-caption {
    padding: 0 2rem 2rem 2rem !important;
  }
}
.cid-qpgOXzqoiM {
  padding-top: 60px;
  padding-bottom: 60px;
  background-color: #ffffff;
}
.cid-qpgOXzqoiM .carousel-item {
  justify-content: center;
}
.cid-qpgOXzqoiM .carousel-controls a {
  transition: opacity .5s;
  font-size:


env.pointed.pointed!!.GetPrimitiveArrayCritical!!.invoke(env, b, null)!!.reinterpret<DoubleVar>()
        val refB = interpretCPointer<DoubleVar>(arrB.rawValue + bOffset * sizeOf<DoubleVar>())

        vec_xor_vec(refA, refB, aSize)

        env.pointed.pointed!!.ReleasePrimitiveArrayCritical!!.invoke(env, a, arrA, 0)
        env.pointed.pointed!!.ReleasePrimitiveArrayCritical!!.invoke(env, b, arrB, 0)
    }
}

@CName("Java_com_martmists_ndarray_simd_NativeSpeedup_vecXorScalar")
fun jni_vec_xor_scalar(env: CPointer<JNIEnvVar>, thisObject: jobject, a: jdoubleArray, aOffset: jint, aSize: jint, b: jint) {
    memScoped {
        val arrA = env.pointed.pointed!!.GetPrimitiveArrayCritical!!.invoke(env, a, null)!!.reinterpret<DoubleVar>()
        val refA = interpretCPointer<DoubleVar>(arrA.rawValue + aOffset * sizeOf<DoubleVar>())

        vec_xor_scalar(refA, b, aSize)

        env.pointed.pointed!!.ReleasePrimitiveArrayCritical!!.invoke(env, a, arrA, 0)
    }
}

@CName("Java_com_martmists_ndarray_simd_NativeSpeedup_vecNot")
fun jni_vec_not(env: CPointer<JNIEnvVar>, thisObject: jobject, a: jdoubleArray, aOffset: jint, aSize: jint) {
    memScoped {
        val arrA = env.pointed.pointed!!.GetPrimitiveArrayCritical!!.invoke(env, a, null)!!.reinterpret<DoubleVar>()
        val refA = interpretCPointer<DoubleVar>(arrA.rawValue + aOffset * sizeOf<DoubleVar>())

        vec_not(refA, aSize)

        env.pointed.pointed!!.ReleasePrimitiveArrayCritical!!.invoke(env, a, arrA, 0)
    }
}

@CName("Java_com_martmists_ndarray_simd_NativeSpeedup_vecLShiftVec")
fun jni_vec_lshift_vec(env: CPointer<JNIEnvVar>, thisObject: jobject, a: jdoubleArray, aOffset: jint, aSize: jint, b: jdoubleArray, bOffset: jint) {
    memScoped {
        val arrA = env.pointed.pointed!!.GetPrimitiveArrayCritical!!.invoke(env, a, null)!!.reinterpret<DoubleVar>()
        val refA = interpretCPointer<DoubleVar>(arrA.rawValue + aOffset * sizeOf<DoubleVar>())
        val arrB = env.pointed.pointed!!.GetPrimitiveArrayCritical!!.invoke(env, b, null)!!.reinterpret<DoubleVar>()
        val refB = interpretCPointer<DoubleVar>(arrB.rawValue + bOffset * sizeOf<DoubleVar>())

        vec_lshift_vec(refA, refB, aSize)

        env.pointed.pointed!!.ReleasePrimitiveArrayCritical!!.invoke(env, a, arrA, 0)
        env.pointed.pointed!!.ReleasePrimitiveArrayCritical!!.invoke(env, b, arrB, 0)
    }
}

@CName("Java_com_martmists_ndarray_simd_NativeSpeedup_vecLShiftScalar")
fun jni_vec_lshift_scalar(env: CPointer<JNIEnvVar>, thisObject: jobject, a: jdoubleArray, aOffset: jint, aSize: jint, b: jint) {
    memScoped {
        val arrA = env.pointed.pointed!!.GetPrimitiveArrayCritical!!.invoke(env, a, null)!!.reinterpret<DoubleVar>()
        val refA = interpretCPointer<DoubleVar>(arrA.rawValue + aOffset * sizeOf


'/panel/api/server/history/load');
                  if (msg.success && Array.isArray(msg.obj)) {
                 // 后端返回的是标准对象，我们需要转换成前端需要的格式
                     this.linkHistory = msg.obj.map(item => ({
                        type: item.Type,
                        link: item.Link,
                        time: new Date(item.CreatedAt).toLocaleString()
                  }));
                }
             },

            // 【中文注释】: 保存链接到历史记录，现在是调用后端 API
            async saveLinkToHistory(type, link) {
            // 1. 在前端立即更新UI，提供即时反馈
                const newRecord = { type: type, link: link, time: new Date().toLocaleString() };
                this.linkHistory.unshift(newRecord);   // 添加到数组开头
                if (this.linkHistory.length > 10) {
                    this.linkHistory.pop();     // 保持最多10条记录
                }

            // 2. 发送数据到后端进行持久化保存，发送表单格式，而不是 JSON
             await HttpUtil.postForm('/panel/api/server/history/save', { type: type, link: link });
            },

            // 【中文注释】: 以下是新增和修改后的方法，用于处理“一键配置”和“订阅转换”
            // 【中文注释】: 打开“一键配置”模态框
            openOneClickConfig() {
                this.oneClickModalVisible = true;
            },

            // 【中文注释】: 处理“一键配置”模态框的确认操作
            async handleOneClickOk(presetType) {
                this.loadingStates.spinning = true;

               // 【中文注释】: 根据选择的预设值调用不同的创建函数
                if (presetType === 'vless_reality') {
                    await this.createVlessRealityInbound();
                } else if (presetType === 'vless_tls_encryption') {
                    await this.createVlessTlsEncryptionInbound();
				} else if (presetType === 'vless_xhttp_reality') { // 【新增】: 响应新按钮的点击
                    await this.createVlessXhttpRealityInbound();
                } else if (presetType === 'switch') {
                    this.$message.info('Switch 模式配置尚未实现');
                } else {
                    this.$message.error('未知的预设配置！');
                }

               // 【中文注释】: 无论如何，最后都关闭加载状态
                this.loadingStates.spinning = false;
            },

            // 【中文注释】: 处理“一键配置”模态框的取消操作
            handleOneClickCancel() {
                this.oneClickModalVisible = false;
                this.inboundLink = '';          // 关闭时清空链接，以便下次重新打开时显示选项
            },

            // 【中文注


_11th {
    ($tuple:expr, value == $val:expr) => {
        if &$tuple.11 != $val {
            panic!("assertion failed: (tuple.11 == val)\n     val: {:?}\ntuple.11: {:?}\n",
                $val,
                $tuple.11,
            );
        }
    };
    ($tuple:expr, value != $val:expr) => {
        if &$tuple.11 == $val {
            panic!("assertion failed: (tuple.11 != val)\n     val: {:?}\ntuple.11: {:?}\n",
                $val,
                $tuple.11,
            );
        }
    };
    ($tuple:expr, value < $val:expr) => {
        if &$tuple.11 >= $val {
            panic!("assertion failed: (tuple.11 < val)\n     val: {:?}\ntuple.11: {:?}\n",
                $val,
                $tuple.11,
            );
        }
    };
    ($tuple:expr, value <= $val:expr) => {
        if &$tuple.11 > $val {
            panic!("assertion failed: (tuple.11 <= val)\n     val: {:?}\ntuple.11: {:?}\n",
                $val,
                $tuple.11,
            );
        }
    };
    ($tuple:expr, value > $val:expr) => {
        if &$tuple.11 <= $val {
            panic!("assertion failed: (tuple.11 > val)\n     val: {:?}\ntuple.11: {:?}\n",
                $val,
                $tuple.11,
            );
        }
    };
    ($tuple:expr, value >= $val:expr) => {
        if &$tuple.11 < $val {
            panic!("assertion failed: (tuple.11 >= val)\n     val: {:?}\ntuple.11: {:?}\n",
                $val,
                $tuple.11,
            );
        }
    };
}

/// Asserts that the 12th `item` in a `tuple` has a relationship to some value.
///
/// ### Parameters
///
/// - `&tuple` A reference to a tuple.
/// - `&val` A reference to a value to compare to the 12th item.
///
/// ### Dependencies
///
/// - All content must implement [Debug](https://doc.rust-lang.org/std/fmt/trait.Debug.html)
/// - `val` must implement PartialEq for the 12th type in the tuple to use `==` or `!=`.
/// - `val` must implement PartialOrd for the 12th type in the tuple to use `<`, `<=`, `>`, `>=`.
///
/// ### Example
///
/// ```
/// use totems::assert_12th;
/// let tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, "Hello");
/// let x = 13;
/// assert_12th!(&tuple, value == &x); // tuple.12 == x
/// assert_12th!(&tuple, value <= &x);
/// assert_12th!(&tuple, value >= &x);
/// assert_12th!(&tuple, value < &(x + 1));
/// assert_12th!(&tuple, value > &(x - 1));
/// ```
///
/// ### Example Error Messages
///
/// ```text
/// thread 'tuples::_12th::le_correct' panicked at 'assertion failed: (tuple.12 <= val)
///      val: 0
/// tuple.12: 1
/// ', src/tuples.rs:2162:9
/// ```
#[macro_export]
macro_rules! assert_12th {
    ($tuple:expr, value == $val:expr) => {
        if &$tuple.12 != $val {
            panic!("assertion failed: (tuple.12 == val)\n     val: {:?}\ntuple.12: {:?}\n",
                $val,
                $tuple.12,
            );


_B, 0x012C
.equ _C, 0x012D
.equ _D, 0x012E
.equ _E, 0x012F
.equ _F, 0x0130
.equ _G, 0x0131
.equ _H, 0x0132
.equ _I, 0x0133
.equ _J, 0x0134
.equ _K, 0x0135
.equ _L, 0x0136
.equ _M, 0x0137
.equ _N, 0x0138
.equ _O, 0x0139
.equ _P, 0x013A
.equ _Q, 0x013B
.equ _R, 0x013C
.equ _S, 0x013D
.equ _T, 0x013E
.equ _U, 0x013F
.equ _V, 0x0140
.equ _W, 0x0141
.equ _X, 0x0142
.equ _Y, 0x0143
.equ _Z, 0x0144
.equ _a_, 0x0145
.equ _b_, 0x0146
.equ _c_, 0x0147
.equ _d_, 0x0148
.equ _e_, 0x0149
.equ _f_, 0x014A
.equ _g_, 0x014B
.equ _h_, 0x014C
.equ _i_, 0x014D
.equ _j_, 0x014E
.equ _k_, 0x014F
.equ _l_, 0x0150
.equ _m_, 0x0151
.equ _n_, 0x0152
.equ _o_, 0x0153
.equ _p_, 0x0154
.equ _q_, 0x0155
.equ _r_, 0x0156
.equ _s_, 0x0157
.equ _t_, 0x0158
.equ _u_, 0x0159
.equ _v_, 0x015A
.equ _w_, 0x015B
.equ _x_, 0x015C
.equ _y_, 0x015D
.equ _z_, 0x015E
.equ _endstr, 0xFFFF

// Vanilla Terrains (Fields)

.equ TERRAIN_PLAIN, (0)
.equ TERRAIN_SAND, (1)
.equ TERRAIN_GRASS, (2)
.equ TERRAIN_PUDDLE, (3)
.equ TERRAIN_MOUNTAIN, (4)
.equ TERRAIN_CAVE, (5)
.equ TERRAIN_SNOW, (6)
.equ TERRAIN_WATER, (7)
.equ TERRAIN_ICE, (8)
.equ TERRAIN_BUILDING, (9)
.equ TERRAIN_GREAT_MARSH, (10)  // unused
.equ TERRAIN_UNKNOWN, (11)   // unused
.equ TERRAIN_WILL, (12)
.equ TERRAIN_KOGA, (13)
.equ TERRAIN_BRUNO, (14)
.equ TERRAIN_KAREN, (15)
.equ TERRAIN_LANCE, (16)
.equ TERRAIN_DISTORTION_WORLD, (17)  // unused
.eq


       var visitor = new MyChunkVisitor();

        var read = Png.Open(memory, visitor);

        Assert.That(read, Is.Not.Null);

        var textChunks = visitor.Visited.Where(x => x.header.Name == "iTXt").ToList();
        Assert.That(textChunks, Has.Count.EqualTo(2));
    }

    [Test]
    public void BiggerImage()
    {
        var builder = PngBuilder.Create(10, 10, false);

        var green = new UniColor(255, 0, 255, 25);
        var color1 = new UniColor(255, 60, 201, 32);
        var color2 = new UniColor(255, 100, 5, 250);

        builder.SetPixel(green, 1, 1).SetPixel(green, 2, 1).SetPixel(green, 3, 1).SetPixel(green, 4, 1).SetPixel(green, 5, 1);

        builder.SetPixel(color1, 5, 7).SetPixel(color1, 5, 8)
            .SetPixel(color1, 6, 7).SetPixel(color1, 6, 8)
            .SetPixel(color1, 7, 7).SetPixel(color1, 7, 8);

        builder.SetPixel(color2, 9, 9).SetPixel(color2, 8, 8);

        using var memoryStream = new MemoryStream();
        builder.Save(memoryStream);
    }

    private class MyChunkVisitor : IChunkVisitor
    {
        private readonly List<(ChunkHeader header, byte[] data)> visited = [];
        public IReadOnlyList<(ChunkHeader header, byte[] data)> Visited => visited;

        public void Visit(Stream stream, ImageHeader header, ChunkHeader chunkHeader, byte[] data, byte[] crc)
        {
            visited.Add((chunkHeader, data));
        }
    }
}


/*
 * Copyright 2014 Google Inc. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer
 *    in the documentation and/or other materials provided with the
 *    distribution.
 * 3. Neither the name of Ericsson nor the names of its contributors
 *    may be used to endorse or promote products derived from this
 *    software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_MEDIASTREAM_MEDIA_STREAM_WEB_AUDIO_SOURCE_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_MEDIASTREAM_MEDIA_STREAM_WEB_AUDIO_SOURCE_H_

#include <memory>
#include <utility>

#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "third_party/blink/renderer/platform/audio/audio_source_provider.h"
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/blink/renderer/platform/wtf/threading_primitives.h"

namespace blink {

class WebAudioSourceProvider;

class PLATFORM_EXPORT MediaStreamWebAudioSource : public AudioSourceProvider {
 public:
  explicit MediaStreamWebAudioSource(std::unique_ptr<WebAudioSourceProvider>);
  ~MediaStreamWebAudioSource() override;

 private:
  // blink::AudioSourceProvider implementation.
  void ProvideInput(AudioBus*, uint32_t frames_to_process) override;

  std::unique_ptr<WebAudioSourceProvider> web_audio_source_provider_;

  DISALLOW_COPY_AND_ASSIGN(MediaStreamWebAudioSource);
};

}  // namespace blink

#endif  // THIRD_PARTY_BLINK_RENDERER_PLATFORM_MEDIASTREAM_MEDIA_STREAM_WEB_AUDIO_SOURCE_H_


      P11Cipher,
                m(CKM_DES3_CBC));
        d(CIP, "DESede/CBC/PKCS5Padding",       P11Cipher,
                m(CKM_DES3_CBC_PAD, CKM_DES3_CBC));
        d(CIP, "DESede/ECB/NoPadding",          P11Cipher,
                m(CKM_DES3_ECB));
        d(CIP, "DESede/ECB/PKCS5Padding",       P11Cipher,      s("DESede"),
                m(CKM_DES3_ECB));
        d(CIP, "AES/CBC/NoPadding",             P11Cipher,
                m(CKM_AES_CBC));
        d(CIP, "AES_128/CBC/NoPadding",          P11Cipher,
                s("2.16.840.1.101.3.4.1.2", "OID.2.16.840.1.101.3.4.1.2"),
                m(CKM_AES_CBC));
        d(CIP, "AES_192/CBC/NoPadding",          P11Cipher,
                s("2.16.840.1.101.3.4.1.22", "OID.2.16.840.1.101.3.4.1.22"),
                m(CKM_AES_CBC));
        d(CIP, "AES_256/CBC/NoPadding",          P11Cipher,
                s("2.16.840.1.101.3.4.1.42", "OID.2.16.840.1.101.3.4.1.42"),
                m(CKM_AES_CBC));
        d(CIP, "AES/CBC/PKCS5Padding",          P11Cipher,
                m(CKM_AES_CBC_PAD, CKM_AES_CBC));
        d(CIP, "AES/ECB/NoPadding",             P11Cipher,
                m(CKM_AES_ECB));
        d(CIP, "AES_128/ECB/NoPadding",          P11Cipher,
                s("2.16.840.1.101.3.4.1.1", "OID.2.16.840.1.101.3.4.1.1"),
                m(CKM_AES_ECB));
        d(CIP, "AES_192/ECB/NoPadding",          P11Cipher,
                s("2.16.840.1.101.3.4.1.21", "OID.2.16.840.1.101.3.4.1.21"),
                m(CKM_AES_ECB));
        d(CIP, "AES_256/ECB/NoPadding",          P11Cipher,
                s("2.16.840.1.101.3.4.1.41", "OID.2.16.840.1.101.3.4.1.41"),
                m(CKM_AES_ECB));
        d(CIP, "AES/ECB/PKCS5Padding",          P11Cipher,      s("AES"),
                m(CKM_AES_ECB));
        d(CIP, "AES/CTR/NoPadding",             P11Cipher,
                m(CKM_AES_CTR));
        d(CIP, "Blowfish/CBC/NoPadding",        P11Cipher,
                m(CKM_BLOWFISH_CBC));
        d(CIP, "Blowfish/CBC/PKCS5Padding",     P11Cipher,
                m(CKM_BLOWFISH_CBC));

        // XXX RSA_X_509, RSA_OAEP not yet supported
        d(CIP, "RSA/ECB/PKCS1Padding",          P11RSACipher,   s("RSA"),
                m(CKM_RSA_PKCS));
        d(CIP, "RSA/ECB/NoPadding",             P11RSACipher,
                m(CKM_RSA_X_509));

        d(SIG, "RawDSA",        P11Signature,   s("NONEwithDSA"),
                m(CKM_DSA));
        d(SIG, "DSA",           P11Signature,
                s("SHA1withDSA", "1.3.14.3.2.13", "1.3.14.3.2.27",
                  "1.2.840.10040.4.3", "


 */  lw      $a2, %lo(D_80970498)($a2)
/* 02AEC 8096FF9C 24E7DE80 */  addiu   $a3, $a3, 0xDE80           ## $a3 = 0600DE80
/* 02AF0 8096FFA0 AFA00014 */  sw      $zero, 0x0014($sp)
/* 02AF4 8096FFA4 0C25B631 */  jal     func_8096D8C4
/* 02AF8 8096FFA8 AFA00010 */  sw      $zero, 0x0010($sp)
/* 02AFC 8096FFAC 8FBF001C */  lw      $ra, 0x001C($sp)
/* 02B00 8096FFB0 27BD0020 */  addiu   $sp, $sp, 0x0020           ## $sp = 00000000
/* 02B04 8096FFB4 03E00008 */  jr      $ra
/* 02B08 8096FFB8 00000000 */  nop


oc-Special-Characters-13" href="IP2K_002dChars.html#IP2K_002dChars">9.17.2.1 Special Characters

9.18 LM32 Dependent Features

9.18.1 Options

9.18.2 Syntax

9.18.2.1 Register Names

9.18.2.2 Relocatable Expression Modifiers

9.18.2.3 Special Characters

9.18.3 Opcodes

9.19 M32C Dependent Features

9.19.1 M32C Options

9.19.2 M32C Syntax

9.19.2.1 Symbolic Operand Modifiers

9.19.2.2 Special Characters

9.20 M32R Dependent Features

9.20.1 M32R Options

9.20.2 M32R Directives

9.20.3 M32R Warnings

9.21 M


cmpeqps 64(%rdx,%rax), %xmm6

// CHECK: cmpeqps 64(%rdx), %xmm6
// CHECK: encoding: [0x0f,0xc2,0x72,0x40,0x00]
cmpeqps 64(%rdx), %xmm6

// CHECK: cmpeqps (%rdx), %xmm6
// CHECK: encoding: [0x0f,0xc2,0x32,0x00]
cmpeqps (%rdx), %xmm6

// CHECK: cmpeqps %xmm6, %xmm6
// CHECK: encoding: [0x0f,0xc2,0xf6,0x00]
cmpeqps %xmm6, %xmm6

// CHECK: cmpeqss 485498096, %xmm6
// CHECK: encoding: [0xf3,0x0f,0xc2,0x34,0x25,0xf0,0x1c,0xf0,0x1c,0x00]
cmpeqss 485498096, %xmm6

// CHECK: cmpeqss -64(%rdx,%rax,4), %xmm6
// CHECK: encoding: [0xf3,0x0f,0xc2,0x74,0x82,0xc0,0x00]
cmpeqss -64(%rdx,%rax,4), %xmm6

// CHECK: cmpeqss 64(%rdx,%rax,4), %xmm6
// CHECK: encoding: [0xf3,0x0f,0xc2,0x74,0x82,0x40,0x00]
cmpeqss 64(%rdx,%rax,4), %xmm6

// CHECK: cmpeqss 64(%rdx,%rax), %xmm6
// CHECK: encoding: [0xf3,0x0f,0xc2,0x74,0x02,0x40,0x00]
cmpeqss 64(%rdx,%rax), %xmm6

// CHECK: cmpeqss 64(%rdx), %xmm6
// CHECK: encoding: [0xf3,0x0f,0xc2,0x72,0x40,0x00]
cmpeqss 64(%rdx), %xmm6

// CHECK: cmpeqss (%rdx), %xmm6
// CHECK: encoding: [0xf3,0x0f,0xc2,0x32,0x00]
cmpeqss (%rdx), %xmm6

// CHECK: cmpeqss %xmm6, %xmm6
// CHECK: encoding: [0xf3,0x0f,0xc2,0xf6,0x00]
cmpeqss %xmm6, %xmm6

// CHECK: comiss 485498096, %xmm6
// CHECK: encoding: [0x0f,0x2f,0x34,0x25,0xf0,0x1c,0xf0,0x1c]
comiss 485498096, %xmm6

// CHECK: comiss -64(%rdx,%rax,4), %xmm6
// CHECK: encoding: [0x0f,0x2f,0x74,0x82,0xc0]
comiss -64(%rdx,%rax,4), %xmm6

// CHECK: comiss 64(%rdx,%rax,4), %xmm6
// CHECK: encoding: [0x0f,0x2f,0x74,0x82,0x40]
comiss 64(%rdx,%rax,4), %xmm6

// CHECK: comiss 64(%rdx,%rax), %xmm6
// CHECK: encoding: [0x0f,0x2f,0x74,0x02,0x40]
comiss 64(%rdx,%rax), %xmm6

// CHECK: comiss 64(%rdx), %xmm6
// CHECK: encoding: [0x0f,0x2f,0x72,0x40]
comiss 64(%rdx), %xmm6

// CHECK: comiss (%rdx), %xmm6
// CHECK: encoding: [


EP_XY)
    LOOP_XYZ(a)
      if (parser.seenval(XYZ_CHAR(a)) || (a == Z_AXIS && parser.seenval('S'))) {
        const float offs = constrain(parser.value_axis_units((AxisEnum)a), -2, 2);
        babystep.add_mm((AxisEnum)a, offs);
        #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
          if (a == Z_AXIS && (!parser.seen('P') || parser.value_bool())) mod_probe_offset(offs);
        #endif
      }
  #else
    if (parser.seenval('Z') || parser.seenval('S')) {
      const float offs = constrain(parser.value_axis_units(Z_AXIS), -2, 2);
      babystep.add_mm(Z_AXIS, offs);
      #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
        if (!parser.seen('P') || parser.value_bool()) mod_probe_offset(offs);
      #endif
    }
  #endif

  if (!parser.seen("XYZ") || parser.seen('R')) {
    SERIAL_ECHO_START();

    #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
      SERIAL_ECHOLNPAIR(STR_PROBE_OFFSET " " STR_Z, probe.offset.z);
    #endif

    #if ENABLED(BABYSTEP_HOTEND_Z_OFFSET)
    {
      SERIAL_ECHOLNPAIR_P(
        PSTR("Hotend "), int(active_extruder)
        #if ENABLED(BABYSTEP_XY)
          , PSTR("Offset X"), hotend_offset[active_extruder].x
          , SP_Y_STR, hotend_offset[active_extruder].y
          , SP_Z_STR
        #else
          , PSTR("Offset Z")
        #endif
        , hotend_offset[active_extruder].z
      );
    }
    #endif

    #if ENABLED(MESH_BED_LEVELING)
      SERIAL_ECHOLNPAIR("MBL Adjust Z", mbl.z_offset);
    #endif

    #if ENABLED(BABYSTEP_DISPLAY_TOTAL)
    {
      SERIAL_ECHOLNPAIR_P(
        #if ENABLED(BABYSTEP_XY)
            PSTR("Babystep X"), babystep.axis_total[X_AXIS]
          , SP_Y_STR, babystep.axis_total[Y_AXIS]
          , SP_Z_STR
        #else
          PSTR("Babystep Z")
        #endif
        , babystep.axis_total[BS_AXIS_IND(Z_AXIS)]
      );
    }
    #endif
  }
}

#endif // BABYSTEPPING
/**
 * Marlin 3D Printer Firmware
 * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
 *
 * Based on Sprinter and grbl.
 * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
 *
 * 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/>.
 *
 */

#include "../../inc/MarlinConfig.h"

#if ENABLED(SDSUPPORT)

#include "../gcode.h"
#include "../../sd/cardreader.h"

/**
 * M524: Abort the current SD print job (started with M24)
 */
void GcodeSuite::M524() {

  if (IS_SD


 if these two if statements are even necessary
    if let Some(t) = theta.get(&x).cloned() {
        return unify_term(t, y, theta);
    }
    if let VarTerm(ref v) = y {
        if let Some(t) = theta.get(&v).cloned() {
            return unify_term(x.into(), t, theta)
        }
    }

    // Neither x nor y were found in theta
    theta.insert(x, y);
    Some(theta)
}

#[cfg(test)]
mod test {
    use std::collections::BTreeMap;

    use gdl::{self, Variable, Constant, Function};
    use prover::substitution::Substitution;
    use util::test::to_relation;

    use super::unify;

    #[test]
    fn test_unify() {
        let a = to_relation(gdl::parse("(legal white ?l)"));
        let b = to_relation(gdl::parse("(legal ?p (reduce ?x ?n))"));
        let c = to_relation(gdl::parse("(reduce ?x ?n)"));

        let mut map = BTreeMap::new();
        map.insert(Variable::new("p"), Constant::new("white").into());
        map.insert(Variable::new("l"), Function::new(c.name, c.args).into());
        let theta = Substitution { mapping: map };
        assert_eq!(unify(a, b).unwrap(), theta);
    }
}
<filename>src/connectivity/network/tests/integration/common/src/ping.rs
// Copyright 2021 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

//! Ping utilities.

use super::Result;

use std::convert::TryFrom as _;

use anyhow::Context as _;
use futures::{FutureExt as _, StreamExt as _};

/// A realm and associated data as a helper for issuing pings in tests.
pub struct Node<'a> {
    /// The test realm of this node.
    realm: &'a netemul::TestRealm<'a>,
    /// Local interface ID (used as scope ID when the destination IPv6 address
    /// is link-local).
    local_interface_id: u64,
    /// Local IPv4 addresses.
    v4_addrs: Vec<net_types::ip::Ipv4Addr>,
    /// Local IPv6 addresses.
    v6_addrs: Vec<net_types::ip::Ipv6Addr>,
}

impl<'a> Node<'a> {
    /// Constructs a new [`Node`].
    pub fn new(
        realm: &'a netemul::TestRealm<'_>,
        local_interface_id: u64,
        v4_addrs: Vec<net_types::ip::Ipv4Addr>,
        v6_addrs: Vec<net_types::ip::Ipv6Addr>,
    ) -> Self {
        Self { realm, local_interface_id, v4_addrs, v6_addrs }
    }

    /// Returns the local interface ID.
    pub fn id(&self) -> u64 {
        self.local_interface_id
    }

    /// Create a new [`Node`], waiting for addresses to satisfy the provided
    /// predicate.
    ///
    /// Addresses changes on `interface` will be observed via a watcher, and
    /// `addr_predicate` will be called with the addresses until the returned
    /// value is `Some`, and the vector of addresses will be used as the local
    /// addresses for this `Node`.
    pub async fn new_with_wait_addr<
        F: FnMut(
            &[fidl_fuchsia_net_interfaces_ext::Address],
        ) -> Option<(Vec<net_types::ip::Ipv4Addr>, Vec<net_types::ip::Ipv6Addr>)>,
    >(
        realm: &'a netemul::TestRealm<'_>,
        interface: &'a netemul::TestInterface<'_>,
        mut addr_predicate: F,
    ) -> Result<Node<'a>> {
        let mut state = fidl_fuchsia_net_interfaces_ext::InterfaceState::Unknown(interface.id());
        let (v4_addrs, v6_addrs) = fidl_f


UE, WED, THU, FRI, SAT
  };

  public enum DayOfWeekQualifier {
    FIRST, SECOND, THIRD, FOURTH, FIFTH, LAST
  };

  DayOfWeekQualifier qualifier;
  DayOfWeek dayOfWeek;

  public QualifiedDayOfWeek() {
  }

  public QualifiedDayOfWeek( DayOfWeekQualifier qualifier, DayOfWeek dayOfWeek ) {
    this.qualifier = qualifier;
    this.dayOfWeek = dayOfWeek;
  }

  public QualifiedDayOfWeek( Integer qualifier, Integer dayOfWeek ) {
    this.qualifier = DayOfWeekQualifier.values()[( qualifier.intValue() - 1 ) % 5];
    this.dayOfWeek = DayOfWeek.values()[( dayOfWeek.intValue() - 1 ) % 7];
  }

  public DayOfWeekQualifier getQualifier() {
    return qualifier;
  }

  public void setQualifier( DayOfWeekQualifier qualifier ) {
    this.qualifier = qualifier;
  }

  public DayOfWeek getDayOfWeek() {
    return dayOfWeek;
  }

  public void setDayOfWeek( DayOfWeek dayOfWeek ) {
    this.dayOfWeek = dayOfWeek;
  }

  public String toString() {
    String aString = ""; //$NON-NLS-1$
    if ( ( getQualifier() != null ) && ( getDayOfWeek() != null ) ) {
      if ( getQualifier() == DayOfWeekQualifier.LAST ) {
        aString = Integer.toString( dayOfWeek.ordinal() + 1 ) + "L"; //$NON-NLS-1$
      } else {
        aString = Integer.toString( dayOfWeek.ordinal() + 1 ) + "#" + ( qualifier.ordinal() + 1 ); //$NON-NLS-1$
      }
    }
    return aString;
  }
}
/*! ******************************************************************************
 *
 * Pentaho
 *
 * Copyright (C) 2024 by Hitachi Vantara, LLC : http://www.pentaho.com
 *
 * Use of this software is governed by the Business Source License included
 * in the LICENSE.TXT file.
 *
 * Change Date: 2029-07-20
 ******************************************************************************/

package org.pentaho.platform.util;

import junit.framework.Assert;
import junit.framework.TestCase;

import java.util.Calendar;
import java.util.Locale;

public class DateMathTest extends TestCase {

  public void testDateMethods() {

    Calendar cal = DateMath.calculateDate( "0:ME -1:DS" ); //$NON-NLS-1$

    System.out.println( "Time is " + cal.getTime() ); //$NON-NLS-1$

    Calendar cal2 = DateMath.calculateDate( cal, "0:MS  0:WE" ); //$NON-NLS-1$
    System.out.println( "Time is milliseconds " + cal2.getTimeInMillis() ); //$NON-NLS-1$

    String cal3 = DateMath.calculateDateString( cal2, "0:MS  0:WE" ); //$NON-NLS-1$
    System.out.println( "Calendar Date with 0:MS  0:WE as format " + cal3 ); //$NON-NLS-1$

    String usDateString = DateMath.calculateDateString( cal2, "0:ME", Locale.US ); //$NON-NLS-1$
    System.out.println( "Calendar Date String with 0:ME as format " + usDateString ); //$NON-NLS-1$

    String dateString = DateMath.claculateDateString( "0:ME" ); //$NON-NLS-1$
    System.out.println( "Calendar Date with 0:ME as format " + dateString ); //$NON-NLS-1$

    Assert.assertTrue( true );
  }
}
/*! ******************************************************************************
 *
 * Pentaho
 *
 * Copyright (C) 2024 by Hitachi Vantara, LLC : http://www.pentaho.com
 *
 * Use of this software is governed by the Business Source License included
 * in the LICENSE.TXT file.
 *
 * Change Date: 2029-07-20
 ******************************************************************************/

package org.pentaho.platform.util;

import junit.framework.TestCase;
import org.pentaho.platform.api.uti


ray cast. If a player is provided, a position 2 meters above the player's feet is used.",
                    "guid": "<unknown guid>"
                }
            },
            {
                "name": "PLAYERS TO INCLUDE",
                "description": "Which players can be hit by this ray cast.",
                "type": {
                    "Array": "Player"
                },
                "default": "ALL PLAYERS",
                "descriptionLocalized": {
                    "guid": "00000000C5A8",
                    "en-US": "Which players can be hit by this ray cast.",
                    "de-DE": "Welche Spieler von diesem Raycast getroffen werden können.",
                    "es-ES": "Los jugadores a los que puede alcanzar este ray cast.",
                    "es-MX": "Los jugadores que pueden ser golpeados por este lanzamiento de rayo.",
                    "fr-FR": "Les joueurs pouvant être intersectés par cette émission de rayons.",
                    "it-IT": "Quali giocatori possono essere colpiti dal lancio di questo raggio.",
                    "ja-JP": "このレイ・キャストが当たりうるプレイヤー",
                    "ko-KR": "이 레이캐스트로 맞힐 수 있는 플레이어입니다.",
                    "pl-PL": "Którzy gracze mogą zostać oświetleni przez raycasting.",
                    "pt-BR": "Quais jogadores podem ser atingidos por este lançamento de raio.",
                    "ru-RU": "Определяет каких игроков может учитывать функция [Ray Cast].",
                    "zh-CN": "哪些玩家可以被射线击中。"
                }
            },
            {
                "name": "PLAYERS TO EXCLUDE",
                "description": "Which players cannot be hit by this ray cast. This list takes precedence over players to include.",
                "type": {
                    "Array": "Player"
                },
                "default": "EVENT PLAYER",
                "descriptionLocalized": {
                    "guid": "00000000C604",
                    "en-US": "Which players cannot be hit by this ray cast. This list takes precedence over Players To Include.",
                    "de-DE": "Welche Spieler nicht von diesem Raycast getroffen werden können. Diese Liste hat Vorrang vor [Players To Include].",
                    "es-ES": "Los jugadores que no pueden ser alcanzados por este ray cast. Esta lista tiene prioridad sobre «Players to Exclude».",
                    "es-MX": "Los jugadores que no pueden ser golpeados por este lanzamiento de rayo. Esta lista tiene prioridad por sobre Jugadores para incluir.",
                    "fr-FR": "Les joueurs ne pouvant pas être touchés par cette émission de rayons. Cette liste supplante celle des Joueurs à inclure.",
                    "it-IT": "Quali giocatori possono essere colpiti dal lancio di questo raggio. Questo elenco ha la precedenza sui Giocatori da Includere.",
                    "ja-JP": "レイ・キャストが当たらないプレイヤー。このリストは「含まれるプレイヤー」より優先される",
                    "ko-KR": "이 레이캐스트로 맞힐 수 없는 플레이어입니다. Players To Include보다 이 목록의 우선순위가 높습니다.",
                    "pl-PL": "Którzy gracze nie mogą zostać oświetleni przez raycasting. Ta lista ma priorytet nad „Players To Include” Gracze do uwzględnienia.",
                    "


4mainEUlvE_iEEEE:
	.quad	0
	.quad	_ZTIN5boost6detail17sp_counted_impl_pINS0_17task_shared_stateIZ4mainEUlvE_iEEEE
	.quad	_ZN5boost6detail17sp_counted_impl_pINS0_17task_shared_stateIZ4mainEUlvE_iEEED1Ev
	.quad	_ZN5boost6detail17sp_counted_impl_pINS0_17task_shared_stateIZ4mainEUlvE_iEEED0Ev
	.quad	_ZN5boost6detail17sp_counted_impl_pINS0_17task_shared_stateIZ4mainEUlvE_iEEE7disposeEv
	.quad	_ZN5boost6detail15sp_counted_base7destroyEv
	.quad	_ZN5boost6detail17sp_counted_impl_pINS0_17task_shared_stateIZ4mainEUlvE_iEEE11get_deleterERKSt9type_info
	.quad	_ZN5boost6detail17sp_counted_impl_pINS0_17task_shared_stateIZ4mainEUlvE_iEEE19get_untyped_deleterEv
	.align 8
	.type	_ZTVN5boost6detail17sp_counted_impl_pINS0_38future_async_continuation_shared_stateINS_6futureIiEEiZ4mainEUlT_E0_EEEE, @object
	.size	_ZTVN5boost6detail17sp_counted_impl_pINS0_38future_async_continuation_shared_stateINS_6futureIiEEiZ4mainEUlT_E0_EEEE, 64
_ZTVN5boost6detail17sp_counted_impl_pINS0_38future_async_continuation_shared_stateINS_6futureIiEEiZ4mainEUlT_E0_EEEE:
	.quad	0
	.quad	_ZTIN5boost6detail17sp_counted_impl_pINS0_38future_async_continuation_shared_stateINS_6futureIiEEiZ4mainEUlT_E0_EEEE
	.quad	_ZN5boost6detail17sp_counted_impl_pINS0_38future_async_continuation_shared_stateINS_6futureIiEEiZ4mainEUlT_E0_EEED1Ev
	.quad	_ZN5boost6detail17sp_counted_impl_pINS0_38future_async_continuation_shared_stateINS_6futureIiEEiZ4mainEUlT_E0_EEED0Ev
	.quad	_ZN5boost6detail17sp_counted_impl_pINS0_38future_async_continuation_shared_stateINS_6futureIiEEiZ4mainEUlT_E0_EEE7disposeEv
	.quad	_ZN5boost6detail15sp_counted_base7destroyEv
	.quad	_ZN5boost6detail17sp_counted_impl_pINS0_38future_async_continuation_shared_stateINS_6futureIiEEiZ4mainEUlT_E0_EEE11get_deleterERKSt9type_info
	.quad	_ZN5boost6detail17sp_counted_impl_pINS0_38future_async_continuation_shared_stateINS_6futureIiEEiZ4mainEUlT_E0_EEE19get_untyped_deleterEv
	.align 8
	.type	_ZTVN5boost6detail17sp_counted_impl_pINS0_41future_deferred_continuation_shared_stateINS_6futureIiEEiZ4mainEUlT_E0_EEEE, @object
	.size	_ZTVN5boost6detail17sp_counted_impl_pINS0_41future_deferred_continuation_shared_stateINS_6futureIiEEiZ4mainEUlT_E0_EEEE, 64
_ZTVN5boost6detail17sp_counted_impl_pINS0_41future_deferred_continuation_shared_stateINS_6futureIiEEiZ4mainEU


#if !defined(ON_COMPILING_OPENNURBS_HSORT_FUNCTIONS)
/*
See opennurbs_sort.cpp for examples of using openurbs_hsort_template.c
to define type specific heap sort functions.
*/
#error Do not compile openurbs_hsort_template.c directly.
#endif

// ON_SORT_TEMPLATE_TYPE -> double, int, ....
#if !defined(ON_SORT_TEMPLATE_TYPE)
#error Define ON_SORT_TEMPLATE_TYPE macro before including opennurbs_qsort_template.c
#endif

#if !defined(ON_HSORT_FNAME)
#error Define ON_HSORT_FNAME macro before including opennurbs_qsort_template.c
#endif

#if defined(ON_SORT_TEMPLATE_COMPARE)
// use a compare function like strcmp for char* strings
#define ON_HSORT_GT(A,B) ON_SORT_TEMPLATE_COMPARE(A,B) > 0
#define ON_HSORT_GT_TMP(A) ON_SORT_TEMPLATE_COMPARE(A,&tmp) > 0
#else
// use type compares
#define ON_HSORT_GT(A,B) *A > *B
#define ON_HSORT_GT_TMP(A) *A > tmp
#endif

#if defined(ON_SORT_TEMPLATE_USE_MEMCPY)
#define ON_HSORT_TO_TMP(A) memcpy(&tmp,A,sizeof(tmp))
#define ON_HSORT_FROM_TMP(A) memcpy(A,&tmp,sizeof(tmp))
#define ON_HSORT_COPY(dst,src) memcpy(dst,src,sizeof(tmp))
#else
#define ON_HSORT_TO_TMP(A) tmp = *A
#define ON_HSORT_FROM_TMP(A) *A = tmp
#define ON_HSORT_COPY(dst,src) *dst = *src
#endif

#if defined(ON_SORT_TEMPLATE_STATIC_FUNCTION)
static
#endif
void
ON_HSORT_FNAME( ON_SORT_TEMPLATE_TYPE* base, size_t nel )
{
  size_t i_end,k,i,j;
  ON_SORT_TEMPLATE_TYPE* e_end;
  ON_SORT_TEMPLATE_TYPE* e_i;
  ON_SORT_TEMPLATE_TYPE* e_j;
  ON_SORT_TEMPLATE_TYPE tmp;

  if (0 == base || nel < 2)
    return;

  k = nel >> 1;
  i_end = nel-1;
  e_end = base + i_end;
  for (;;)
  {
    if (k)
    {
      --k;
      ON_HSORT_TO_TMP((base+k));  /* e_tmp = e[k]; */
    }
    else
    {
      ON_HSORT_TO_TMP(e_end);     /* e_tmp = e[i_end]; */
      ON_HSORT_COPY(e_end,base);  /* e[i_end] = e[0];  */
      if (!(--i_end))
      {
        ON_HSORT_FROM_TMP(base);  /* e[0] = e_tmp;     */
        break;
      }
      e_end--;
    }

    i = k;
    j = (k<<1) + 1;
    e_i = base + i;
    while (j <= i_end)
    {
      e_j = base + j;
      if (j < i_end && ON_HSORT_GT((e_j+1),e_j) /*e[j] < e[j + 1] */)
      {
        j++;
        e_j++;
      }
      if (ON_HSORT_GT_TMP(e_j) /* tmp < e[j] */)
      {
        ON_HSORT_COPY(e_i,e_j);  /* e[i] = e[j]; */
        i = j;
        e_i = e_j;
        j = (j<<1) + 1;
      }
      else
        j = i_end + 1;
    }

    ON_HSORT_FROM_TMP(e_i); /* e[i] = e_tmp; */
  }
}

#undef ON_HSORT_GT
#undef ON_HSORT_GT_TMP
#undef ON_HSORT_TO_TMP
#undef ON_HSORT_FROM_TMP
#undef ON_HSORT_COPY
#undef ON_HSORT_FROM_TMP


MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(t){return t},week:{dow:1,doy:4}})})}})});!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("moment"),require("fullcalendar")):"function"==typeof define&&define.amd?define(["moment","fullcalendar"],t):"object"==typeof exports?t(require("moment"),require("fullcalendar")):t(e.moment,e.FullCalendar)}("undefined"!=typeof self?self:this,function(e,t){return function(e){function t(n){if(r[n])return r[n].exports;var a=r[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=135)}({0:function(t,r){t.exports=e},1:function(e,r){e.exports=t},135:function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),r(136);var n=r(1);n.datepickerLocale("hu","hu",{closeText:"bezár",prevText:"vissza",nextText:"előre",currentText:"ma",monthNames:["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],monthNamesShort:["Jan","Feb","Már","Ápr","Máj","Jún","Júl","Aug","Szep","Okt","Nov","Dec"],dayNames:["Vasárnap","Hétfő","Kedd","Szerda","Csütörtök","Péntek","Szombat"],dayNamesShort:["Vas","Hét","Ked","Sze","Csü","Pén","Szo"],dayNamesMin:["V","H","K","Sze","Cs","P","Szo"],weekHeader:"Hét",dateFormat:"yy.mm.dd.",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:""}),n.locale("hu",{buttonText:{month:"Hónap",week:"


ek güncelleme isteğini yap
        window.location.href = "{{ url_for('update_data') }}";
      }

      function getColorClass(aqi) {
        if (aqi === "N/A") return "text-gray-500 bg-gray-100";
        const score = parseInt(aqi);
        if (score <= 50) return "text-green-700 bg-green-100"; // İyi
        if (score <= 100) return "text-yellow-700 bg-yellow-100"; // Orta
        if (score <= 150) return "text-orange-700 bg-orange-100"; // Hassas
        if (score <= 200) return "text-red-700 bg-red-100"; // Sağlıksız
        return "text-purple-700 bg-purple-100"; // Çok Sağlıksız
      }

      window.onload = function () {
        const aqiElement = document.getElementById("avgAqiScore");
        const aqiValue = aqiElement.textContent.trim();
        aqiElement.className = `text-6xl font-extrabold p-4 rounded-xl shadow-inner ${getColorClass(
          aqiValue
        )} inline-block`;
      };
    </script>

TEMPO AQI Risk Paneli

          Özet (AQI)
          Harita & Grafik
          Karar Destek
          Veri Kaynakları

              İşlenen Bölgelerin Ortalama AQI Skoru

                {{ avg_aqi }}

                  Hesaplanan tüm izleme zonlarının ortalama risk seviyesini
                  gösterir.

                  Son Güncelleme:
                  Tarih/Saat Bilgisi (Yazılımla Ekl


taunt_after_assault"

	if ai_type == r then
		self._taunt_during_assault = "rcloaker_taunt_during_assault"
		self._taunt_after_assault = "rcloaker_taunt_after_assault"
	elseif ai_type == f then
		self._taunt_during_assault = "mcloaker_taunt_during_assault"
		self._taunt_after_assault = "mcloaker_taunt_after_assault"
	end

	local spooc_sound_events = self._common_data.char_tweak.spooc_sound_events or {}
	self._taunt_during_assault = spooc_sound_events.taunt_during_assault or self._taunt_during_assault
	self._taunt_after_assault = spooc_sound_events.taunt_after_assault or self._taunt_after_assault

	return true
end

function ActionSpooc:on_exit()
	if self._unit:character_damage():dead() then
		self._unit:sound():play(self:get_sound_event("detect_stop"))
	else
		self._unit:sound():play(self._unit:base():char_tweak().spawn_sound_event)

		if self._is_local and self._taunt_at_beating_played and not self._unit:sound():speaking(TimerManager:game():time()) then
			self._unit:sound():say(self._taunt_after_assault, true, true)
		end
	end

	self._unit:damage():run_sequence_simple("kill_spook_lights")

	if self._root_blend_disabled then
		self._ext_movement:set_root_blend(true)
	end

	if self._expired and self._common_data.ext_anim.move then
		self:_stop_walk()
	end

	self._ext_movement:drop_held_items()

	if Network:is_server() then
		local stop_nav_index = math.min(256, self._nav_index - (self._host_stop_pos_inserted or 0))

		self._ext_network:send("action_spooc_stop", mvector3.copy(self._ext_movement:m_pos()), stop_nav_index, self._action_id)
	else
		self._ext_movement:set_m_host_stop_pos(self._ext_movement:m_pos())
	end

	if alive(self._target_unit) and self._target_unit:base().is_local_player then
		self._target_unit:movement():on_targetted_for_attack(false, self._common_data.unit)
	end
end

function ActionSpooc:_chk_can_strike()
	if self._stroke_t then
		return
	end

	local my_pos = self._common_data.pos
	local target_pos = self._tmp_vec1

	self._chase_tracker:m_position(target_pos)

	local function _dis_chk(pos)
		mvector3.subtract(pos, my_pos)

		local dif_z = math.abs(mvector3.z(pos))

		mvector3.set_z(pos, 0)

		return mvector3.length_sq(pos) < 52900 and dif_z < 75
	end

	if not _dis_chk(target_pos) then
		return
	end

	mvector3.set(target_pos, self._nav_path[#self._nav_path])

	if _dis_chk(target_pos) then
		return true
	end
end

function ActionSpooc:_chk_target_invalid()
	if not self._target_unit then
		return true
	end

	if self._target_unit:base().is_local_player and not self._target_unit:movement():is_SPOOC_attack_allowed() then
		return true
	end

	if self._target_unit:movemen


) r = m;                                            \
    else if (raw > v10) l = m;                                            \
    else {                                                                \
      const celsius_t v01 = celsius_t(pgm_read_word(&TBL[m-1].celsius)),  \
                      v11 = celsius_t(pgm_read_word(&TBL[m-0].celsius));  \
      return v01 + (raw - v00) * float(v11 - v01) / float(v10 - v00);     \
    }                                                                     \
  }                                                                       \
}while(0)

#if HAS_USER_THERMISTORS

  user_thermistor_t Temperature::user_thermistor[USER_THERMISTORS]; // Initialized by settings.load()

  void Temperature::reset_user_thermistors() {
    user_thermistor_t default_user_thermistor[USER_THERMISTORS] = {
      #if TEMP_SENSOR_0_IS_CUSTOM
        { true, HOTEND0_SH_C_COEFF, 0, HOTEND0_PULLUP_RESISTOR_OHMS, HOTEND0_RESISTANCE_25C_OHMS, 0, 0, HOTEND0_BETA, 0 },
      #endif
      #if TEMP_SENSOR_1_IS_CUSTOM
        { true, HOTEND1_SH_C_COEFF, 0, HOTEND1_PULLUP_RESISTOR_OHMS, HOTEND1_RESISTANCE_25C_OHMS, 0, 0, HOTEND1_BETA, 0 },
      #endif
      #if TEMP_SENSOR_2_IS_CUSTOM
        { true, HOTEND2_SH_C_COEFF, 0, HOTEND2_PULLUP_RESISTOR_OHMS, HOTEND2_RESISTANCE_25C_OHMS, 0, 0, HOTEND2_BETA, 0 },
      #endif
      #if TEMP_SENSOR_3_IS_CUSTOM
        { true, HOTEND3_SH_C_COEFF, 0, HOTEND3_PULLUP_RESISTOR_OHMS, HOTEND3_RESISTANCE_25C_OHMS, 0, 0, HOTEND3_BETA, 0 },
      #endif
      #if TEMP_SENSOR_4_IS_CUSTOM
        { true, HOTEND4_SH_C_COEFF, 0, HOTEND4_PULLUP_RESISTOR_OHMS, HOTEND4_RESISTANCE_25C_OHMS, 0, 0, HOTEND4_BETA, 0 },
      #endif
      #if TEMP_SENSOR_5_IS_CUSTOM
        { true, HOTEND5_SH_C_COEFF, 0, HOTEND5_PULLUP_RESISTOR_OHMS, HOTEND5_RESISTANCE_25C_OHMS, 0, 0, HOTEND5_BETA, 0 },
      #endif
      #if TEMP_SENSOR_6_IS_CUSTOM
        { true, HOTEND6_SH_C_COEFF, 0, HOTEND6_PULLUP_RESISTOR_OHMS, HOTEND6_RESISTANCE_25C_OHMS, 0, 0, HOTEND6_BETA, 0 },
      #endif
      #if TEMP_SENSOR_7_IS_CUSTOM
        { true, HOTEND7_SH_C_COEFF, 0, HOTEND7_PULLUP_RESISTOR_OHMS, HOTEND7_RESISTANCE_25C_OHMS, 0, 0, HOTEND7_BETA, 0 },


/**********
Copyright 1990 Regents of the University of California.  All rights reserved.
Author: 1985 Thomas L. Quarles
Modified: 1999 Paolo Nenzi - Now we can use a two digits level code -
**********/

    /* INPfindLev(line,level)
     *      find the 'level' parameter on the given line and return its
     *      value (1,2,..,99 for now, 1 default)
     *
     */

#include "ngspice/ngspice.h"
#include "ngspice/inpdefs.h"
#include "inpxx.h"

char *INPfindLev(char *line, int *level)
{
    char *where;
    int error1;

    /*
     *where = line;
     */

    where = strstr(line, "level");

    if (where != NULL) {	/* found a level keyword on the line */

        where += 5;		/* skip the level keyword */
        while ((*where == ' ') || (*where == '\t') || (*where == '=') ||
           (*where == ',') || (*where == '(') || (*where == ')') ||
           (*where == '+'))
        {  /* legal white space - ignore */
            where++;
        }
        /* now the magic number,
           allow scientific notation of level, e.g. 4.900e1,
           offers only limited error checking.
         */
        *level = (int)(INPevaluate(&where, &error1, 0) + 0.5);

        if (*level < 0) {
            *level = 1;
            fprintf(stderr,"Illegal value for level.\n");
            fprintf(stderr,"Level must be >0 (Setting level to 1)\n");
            return (INPmkTemp
               (" illegal (negative) argument to level parameter - level=1 assumed"));
        }

        if (*level > 99) {	/* Limit to change in the future */
            *level = 1;
            fprintf(stderr,"Illegal value for level.\n");
            fprintf(stderr,"Level must be < 99 (Setting Level to 1)\n");
            return (INPmkTemp
               (" illegal (too high) argument to level parameter - level=1 assumed"));
        }

        return (NULL);
    }

    else {			/* no level on the line => default */
        *level = 1;
#ifdef TRACE			/* this is annoying for bjt's */
        fprintf(stderr,"Warning -- Level not specified on line \"%s\"\nUsing level 1.\n", line);
#endif
        return (NULL);
    }
}


�革，颜色为红色，价格在5000元左右。|
|音乐风格分类|请将下列音乐风格进行分类：摇滚、流行、爵士、古典、电子。|
| 数据分析 | 如何快速有效地对大规模数据进行分析？ |
| 网络安全 | 如何防止黑客攻击企业的网络系统？ |
| 营销策略 | 在市场竞争激烈的行业，如何制定有效的营销策略？ |
| 人工智能 | 人工智能技术的应用有哪些领域？ |
| 环境保护 | 如何减少工厂排放对环境造成的污染？ |
| 金融投资 | 投资股票、基金和期货有哪些不同的优缺点？ |
| 程序开发 | 如何保证程序的稳定性和高效性？ |
| 医学研究 | 有哪些创新的方法可以加速医学研究的进展？ |
| 教育改革 | 如何在教育改革中平衡教育公平和教育效率？ |
| 自然灾害 | 如何提高城市应对自然灾害的能力？ |
|自然语言处理|请描述一下自然语言处理是什么，以及它在计算机科学中的应用。|
|人工智能伦理|你认为人工智能伦理的发展对于未来的人工智能产业会有怎样的影响？|
|金融科技|金融科技是如何改变我们的日常生活的？请提供具体例子。|
|社交媒体|社交媒体对社会的影响是什么？请提供正反两方面的例子。|
|医疗保健|如何利用人工智能技术改善医疗保健？请举例说明。|
|数据隐私|如何保护个人数据隐私？请提供具体的建议。|
|气候变化|气候变化对我们的环境有什么影响？请列举出其中几个最重要的问题。|
|虚拟现实|虚拟现实技术的应用领域有哪些？请举例说明。|
|网络安全|网络安全问题具有哪些危害？如何保障网络安全？|
|城市化|城市化带来了哪些挑战？如何解决这些挑战？|
| 文本分类 | 如何将一篇新闻文章自动分类到不同的主题类别？ |
| 摘要生成 | 怎样使用深度学习模型从长文本中自动生成简介摘要？ |
| 情感分析 | 如何使用自然语言处理技术对用户评


dcf;color:#fff;-webkit-transition:all 0.3s ease;transition:all 0.3s ease}.modal-footer{-ms-flex-wrap:wrap;flex-wrap:wrap}.img-cropper #putData{margin-bottom:0}.img-cropper .img-container{min-height:auto;margin-bottom:0}.img-cropper .docs-data>.input-group:last-child{margin-bottom:0}.img-cropper .docs-preview{margin-top:20px;margin-bottom:10px}.dropzone .dz-preview .dz-error-message{background:#fff !important;color:#d64dcf !important;border:1px solid #d64dcf}.dropzone .dz-preview .dz-error-message:after{border-bottom:6px solid #d64dcf !important}.typeahead .theme-form .form-group{margin-bottom:0}.editor-statusbar{border-bottom:1px solid rgba(0,0,0,0.125)}.page-builder .ge-canvas.ge-editing .row{padding:30px;margin-bottom:0;background-color:rgba(214,77,207,0.02)}.page-builder .btn-screen{padding:0 18px 0 0}.bg-overlay.active{height:100vh;width:100vw;background-color:rgba(0,0,0,0.2);position:fixed;z-index:8;top:0}button:focus{outline:none !important}.dotted{border-style:dotted}.dashed{border-style:dashed}.double{border-style:double}.groove{border-style:groove}.ridge{border-style:ridge}.inset{border-style:inset}.outset{border-style:outset}@-webkit-keyframes fadeIncustom{0%{opacity:0;top:50px}75%{opacity:.6;top:0}100%{opacity:1}}@keyframes fadeIncustom{0%{opacity:0;top:50px}75%{opacity:.6;top:0}100%{opacity:1}}.daterangepicker select.monthselect,.daterangepicker select.yearselect{border-color:#efefef;background-color:#fff;font-size:14px;color:#898989;padding:5px 10px;border-radius:5px;width:46%}body{font-size:14px;overflow-x:hidden;font-family:Rubik,sans-serif;color:#2b2b2b}ul{padding-left:0px;list-style-type:none;margin-bottom:0}* a{color:var(--theme-deafult);text-decoration:none;letter-spacing:1px}a:hover{text-decoration:none;color:var(--theme-deafult)}a[class*="badge-"]:hover{color:#fff}.btn{font-size:14px}*.btn:focus{-webkit-box-shadow:none !important;box-shadow:none !important}p{font-size:13px;line-height:1.7;letter-spacing:.7px}code{color:#d64dcf !important;background-color:rgba(115,102,255,0.03);padding:3px;margin:0 3px;border-radius:2px}.media{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.media .media-body{-webkit-box-flex:1;-ms-flex:1;flex:1}blockquote{border-left:4px solid #ecf3fa;padding:15px}.figure.text-center blockquote{border:none !important}.figure.text-end blockquote{border-left:none !important;border-right:4px solid #ecf3fa}.row>div{position:relative}:focus{outline-color:#d64dcf}.disabled{cursor:not-allowed;opacity:0.5}svg{vertical-align:baseline}input:focus{outline-color:rgba(0,0,0,0)}label{margin-bottom:.5rem}.media-widgets .media-body{margin-bottom:30px}.typography h1,.typog


>Bison Exception

As a special exception, you may create a larger work that
         contains part or all of the Bison parser skeleton and
         distribute that work under terms of your choice, so long as
         that work isn't itself a parser generator using the skeleton
         or a modified version thereof as a parser skeleton.
         Alternatively, if you modify or redistribute the parser
         skeleton itself, you may (at your option) remove this special
         exception, which will cause the skeleton and the resulting
         Bison output files to be licensed under the GNU General Public
         License without this special exception.

This special exception was added by the Free Software Foundation
         in version 2.2 of Bison.

© 2018          SPDX Workgroup a Linux Foundation Project. All Rights Reserved.

Linux Foundation is a registered trademark of The Linux Foundation. Linux is a registered trademark of Linus Torvalds.

Please see our privacy policy and terms of use.

      top of page

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="shortcut icon" href="sites/all/themes/cpstandard/favicon.ico" type="image/vnd.microsoft.icon" />

    <title>BSD 3-Clause No Nuclear License 2014 | Software Package Data Exchange (SPDX)</title>

    <link rel="shortcut icon" href="sites/all/themes/cpstandard/favicon.ico" type="image/vnd.microsoft.icon" />
    <link type="text/css" rel="stylesheet" media="all" href="sites/all/themes/cpstandard/css/style.css" />
    <link type="text/css" rel="stylesheet" media="all" href="sites/all/themes/cpstandard/css/colors.css" />
    <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet" />

    <link href='//fonts.googleapis.com/css?family=Roboto:400,400italic,300,300italic,100italic,100,500