}
/*
 * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
 * or more contributor license agreements. Licensed under the "Elastic License
 * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
 * Public License v 1"; you may not use this file except in compliance with, at
 * your election, the "Elastic License 2.0", the "GNU Affero General Public
 * License v3.0 only", or the "Server Side Public License, v 1".
 */

package org.elasticsearch.gradle.internal;

import org.gradle.api.Buildable;
import org.gradle.api.artifacts.Configuration;
import org.gradle.api.file.FileCollection;
import org.gradle.api.model.ObjectFactory;
import org.gradle.api.provider.Property;
import org.gradle.api.tasks.TaskDependency;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Jdk implements Buildable, Iterable<File> {

    private static final List<String> ALLOWED_ARCHITECTURES = List.of("aarch64", "x64");
    private static final List<String> ALLOWED_VENDORS = List.of("adoptium", "openjdk", "zulu");
    private static final List<String> ALLOWED_PLATFORMS = List.of("darwin", "linux", "windows", "mac");
    private static final Pattern VERSION_PATTERN = Pattern.compile(
        "(\\d+)(\\.\\d+\\.\\d+(?:\\.\\d+)?)?\\+(\\d+(?:\\.\\d+)?)(@([a-f0-9]{32}))?"
    );
    private static final Pattern LEGACY_VERSION_PATTERN = Pattern.compile("(\\d)(u\\d+)\\+(b\\d+?)(@([a-f0-9]{32}))?");
    private static final Pattern EA_VERSION_PATTERN = Pattern.compile("(\\d+)-(?:ea|rc)\\+(\\d+)(@([a-f0-9]{32}))?");

    private final String name;
    private final FileCollection configuration;

    private final Property<String> vendor;
    private final Property<String> version;
    private final Property<String> platform;
    private final Property<String> architecture;
    private final Property<String> distributionVersion;
    private final String configurationName;
    private String baseVersion;
    private String major;
    private String build;
    private String hash;

    Jdk(String name, Configuration configuration, ObjectFactory objectFactory) {
        this.name = name;
        this.configurationName = configuration.getName();
        this.configuration = configuration;
        this.vendor = objectFactory.property(String.class);
        this.version = objectFactory.property(String.class);
        this.platform = objectFactory.property(String.class);
        this.architecture = objectFactory.property(String.class);
        this.distributionVersion = objectFactory.property(String.class);
    }

    public String getName() {
        return name;
    }

    public String getVendor() {
        return vendor.get();
    }

    public void setVendor(final String vendor) {
        if (ALLOWED_VENDORS.contains(vendor) == false) {
            throw new IllegalArgumentException("unknown vendor [" + vendor + "] for jdk [" + name + "], must be one of " + ALLOWED_VENDORS);
        }
        this.vendor.set(vendor);
    }

    public String getVersion() {
        return version.get();
    }

    public void setVersion(String version) {
        if (VERSION_PATTERN.matcher(version).matches() == false
            && LEGACY_VERSION_PATTERN.matcher(version).matches() == false
            && EA_VERSION_PATTERN.matcher(version).matches() == false) {
            throw new IllegalArgumentException("malformed version [" + version + "] for jdk [" + name + "]");
        }
        parseVersion(version);
        this.version.set(version);
    }

    public String getPlatform() {
        return platform.get();
    }

    public void setPlatform(String platform) {
        if (ALLOWED_PLATFORMS.contains(plat


idth, initial-scale=1.0">
    <title>Namerena</title>
	<meta name="description" content="Namerena is a text based fighting game. The result of the game is fully determined by the inputed names.">
    <meta name="keywords" content="Namerena,Game,Name,Predict,Battle,Random">
    <style>
html {
 width:100%;
 height:100%;

}
body {
 margin: 0;
 font-size: 15px;
 width:100%;
 height:100%;
}
*{
 font-family: "Microsoft YaHei", Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif;
}

.picon {
  width: 28px;
  height: 28px;
  position: relative;
}

.micon {
  width: 32px;
  height: 32px;
  position: relative;
}
.svgicon {
  width: 24px;
  height: 24px;
  position: absolute;
  left: 3px;
  top: 3px;
}

.fastforward {
  background-image: url("data:image/svg+xml;utf8, %3Csvg fill='white' height='24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 18l8.5-6L4 6v12zm9-12v12l8.5-6L13 6z'/%3E%3C/svg%3E");
}
.share {
  background-image: url("data:image/svg+xml;utf8, %3Csvg fill='white' height='24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z'/%3E%3C/svg%3E");
}
.refresh {
  background-image: url("data:image/svg+xml;utf8, %3Csvg fill='white' height='24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z'/%3E%3C/svg%3E");
}
.add {
  left: 1px;
  top: 1px;
  background-image: url("data:image/svg+xml;utf8, %3Csvg fill='white' height='24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z'/%3E%3C/svg%3E");
}
.rightarrow {
  left: 1px;
  top: 1px;
  background-image: url("data:image/svg+xml;utf8, %3Csvg fill='white' height='24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z'/%3E%3C/svg%3E");
}
.close {
  left: 1px;
  top: 1px;
  background-image: url("data:image/svg+xml;utf8, %3Csvg fill='white' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3


 name="rendererMap">The map used to lookup renderers</param>
		/// <param name="enumerator">the enumerator to render</param>
		/// <param name="writer">The writer to render to</param>
		/// <remarks>
		/// <para>
		/// Rendered as an open brace, followed by a comma
		///	separated list of the elements (using the appropriate
		///	renderer), followed by a close brace. For example:
		///	<c>{a, b, c}</c>.
		///	</para>
		/// </remarks>
		private void RenderEnumerator(RendererMap rendererMap, IEnumerator enumerator, TextWriter writer)
		{
			writer.Write("{");

			if (enumerator != null && enumerator.MoveNext())
			{
				rendererMap.FindAndRender(enumerator.Current, writer);

				while (enumerator.MoveNext())
				{
					writer.Write(", ");
					rendererMap.FindAndRender(enumerator.Current, writer);
				}
			}

			writer.Write("}");
		}

		/// <summary>
		/// Render the DictionaryEntry argument into a string
		/// </summary>
		/// <param name="rendererMap">The map used to lookup renderers</param>
		/// <param name="entry">the DictionaryEntry to render</param>
		/// <param name="writer">The writer to render to</param>
		/// <remarks>
		/// <para>
		/// Render the key, an equals sign ('='), and the value (using the appropriate
		///	renderer). For example: <c>key=value</c>.
		///	</para>
		/// </remarks>
		private void RenderDictionaryEntry(RendererMap rendererMap, DictionaryEntry entry, TextWriter writer)
		{
			rendererMap.FindAndRender(entry.Key, writer);
			writer.Write("=");
			rendererMap.FindAndRender(entry.Value, writer);
		}
	}
}


num'] : $default_stepnum;

// in the reply we must fill in the request id that came with the request
$reqId = getReqId();

// check for a maximum number of datapoints (for safety)
if ($xstepnum * $ystepnum > 10000) {
  echo "google.visualization.Query.setResponse({
    version:'0.6',
    reqId:'$reqId',
    status:'error',
    errors:[{reason:'not_supported', message:'Maximum number of datapoints exceeded'}]
  });";

  exit;
}

// output the header part of the response
echo "google.visualization.Query.setResponse({
  version:'0.6',
  reqId:'$reqId',
  status:'ok',
  table:{
    cols:[
      {id:'x',
       label:'x',
       type:'number'},
      {id:'y',
       label:'y',
       type:'number'},
      {id:'value',
       label:'',
       type:'number'}
    ],
    rows:[";

// output the actual values
$first = true;
$xstep = ($xmax - $xmin) / $xstepnum;
$ystep = ($ymax - $ymin) / $ystepnum;
for ($x = $xmin; $x < $xmax; $x+=$xstep) {
  for ($y = $ymin; $y < $ymax; $y+=$ystep) {
    $value = custom($x,$y);

    if (!$first) {
      echo ",\n";
    }
    else {
      echo "\n";
    }
    echo "      {c:[{v:$x}, {v:$y}, {v:$value}]}";

    $first = false;
  }
}

// output the end part of the response
echo "
    ]
  }
});
";

/**
 * Retrieve the request id from the get/post data
 * @return {number} $reqId       The request id, or 0 if not found
 */
function getReqId() {
  $reqId = 0;

  foreach ($_REQUEST as $req) {
    if (substr($req, 0,6) == "reqId:") {
      $reqId = substr($req, 6);
    }
  }

  return $reqId;
}

?>

<!DOCTYPE HTML>

  <title>Timeline | Tooltips</title>

  <link href="../../../dist/vis-timeline-graph2d.min.css" rel="stylesheet" type="text/css" />

Tooltips

  Setting the tooltip in various ways.

  The example below has the tooltip follow the mouse.

  The example below has the tooltip overflow set to 'cap'. Compare this to the one above,
  to see how they differ. For the best results, move the cursor to the top right,
  where the tool-tip is going to overflow out of the timeline.


            return false;
        } else {
            return true;
        }
    }

    /**
     * @brief Check whether every tag in the parameter exists in tags.
     * @param ts    Tags whose presence to check.
     * @return Return `true` if all tags in the parameter are among tags, else `false`.
     */
    bool match(std::vector<const Tag*>& ts) {
        if(ts.size()) {
            for(auto t:ts) {
                if(!this->hasTag(t)) {
                    return false;
                }
            }
        }

        return true;
    }

    void addTag(const Tag* tag)
    {
        if(tag && !this->hasTag(tag)) {
            tags.push_back(tag);
        }
    }

    void addTags(std::vector<const Tag*> ts) {
        for(auto t:ts) {
            this->addTag(t);
        }
    }

    void removeTag(const Tag* tag)
    {
        // erase-remove idiom
        tags.erase(std::remove(tags.begin(), tags.end(), tag), tags.end());
    }

    void removeTags(std::vector<const Tag*> ts) {
        for(auto t:ts) {
            this->removeTag(t);
        }
    }

    std::string toString(std::vector<std::string>& tags, bool escape=true);
    std::string toString(std::set<std::string>& tags, bool escape=true);
    std::set<std::string> fromString(std::string& s);
};

/**
 * @brief AND, OR and NOT tags expression.
 */
class TagExpression {
};

} // m8r namespace

#endif /* M8R_TAG_H_ */


durationString += "s";
    }
  }

  const autoUpdateDate = document.getElementById("autoUpdateDate");
  if (autoUpdateDate) {
    autoUpdateDate.innerText = "Mar 2022 - Present";
  }

  const autoUpdateDateValue = document.getElementById("autoUpdateDateValue");
  if (autoUpdateDateValue) {
    autoUpdateDateValue.innerText = durationString;
  }
}
import { EntityManager, EntityRepository } from "typeorm";
import { User } from "../../entities/User";
import { CreateUserDTO } from "../../useCases/CreateUser/CreateUserDTO";
import { UpdateUserDTO } from "../../useCases/UpdateUser/UpdateUserDTO";
import { IUsersRepository } from "../IUsersRepository";

@EntityRepository(User)
export class PostgresUsersRepository implements IUsersRepository {
  constructor(private entityManager: EntityManager) {}

  async findById(id: string): Promise<User> {

    return await this.entityManager.findOne(User, { id });
  }

  async findByEmail(email: string): Promise<User> {

    return await this.entityManager.findOne(User, { email });
  }

  async findByCpf(cpf: string): Promise<User> {

    return await this.entityManager.findOne(User, { cpf });
  }

  async create(data: CreateUserDTO): Promise<User> {

    return this.entityManager.create(User, {
      ...data,
      balance: 0,
      level: 1,
      admin: false,
      orders_ids: []
    });
  }

  async save(user: User): Promise<User> {

    return await this.entityManager.save(user);
  }

  async getAll(): Promise<User[]> {

  return await this.entityManager.find(User, {});
  }

  async update(id: string, data: UpdateUserDTO): Promise<User> {
    await this.entityManager.update(User, id, data);
    return await this.findById(id);
  }

  async delete(id: string): Promise<User> {
    const user = await this.findById(id);
    await this.entityManager.delete(User, id);
    return user;
  }
}import * as db from './db';
import * as templates from './templates';
import * as util from './util';

const searchResultContainerId = 'search_result_container';

export interface Game {
    description: string;
    reviewDescription: string;
    screenshots: string[];
}

interface GameAnchorElement extends HTMLAnchorElement {
    previewAdded?: boolean;
    hasUngettableHref?: boolean;
}

export class SteamResult {
    static newResults: util.Signal<any> = new util.Signal<any>();

    static all(): SteamResult[] {
        const anchors = document.querySelectorAll(`#${searchResultContainerId} > div > a`);
        return [].slice.call(anchors).map(a => new SteamResult(a));
    }

    static listenForNewResults() {
        let container = document.getElementById(searchResultContainerId);
        let observer = new WebKitMutationObserver(() => this.newResults.dispatch());
        observer.observe(container, { childList: true });
        observer.observe(container.parentNode, { childList: true });
    }

    static appendPreviewToAll(mode: db.PREVIEW_MODE) {
        let steamResults = SteamResult.all();
        steamResults.forEach(sr => sr.appendPreview(mode));
    }

    constructor(private el: GameAnchorElement) {}

    async game(): Promise<Game> {
        let html = await util.getHtml(this.el.href);
        let container = document.createElement('div');
        container.innerHTML = html;
        let descriptionContainer = container.querySelector('.game_description_snippet');
        if (!descriptionContainer) {
            ret


Insn(IRETURN);
        mv.visitMaxs(0, 0);
        mv.visitEnd();
    }

    private void appendAndChopFrame(final ClassWriter cw) {
        MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, "appendAndChopFrame",
                "(I)V", null, null);
        mv.visitCode();
        mv.visitInsn(ICONST_0);
        mv.visitVarInsn(ISTORE, 2);
        mv.visitFrame(F_APPEND, 1, new Object[] { INTEGER }, 0, null);
        Label l0 = new Label();
        mv.visitLabel(l0);
        mv.visitVarInsn(ILOAD, 2);
        mv.visitVarInsn(ILOAD, 1);
        Label l1 = new Label();
        mv.visitJumpInsn(IF_ICMPGE, l1);
        mv.visitIincInsn(2, 1);
        mv.visitJumpInsn(GOTO, l0);
        mv.visitFrame(F_CHOP, 1, null, 0, null);
        mv.visitLabel(l1);
        mv.visitInsn(RETURN);
        mv.visitMaxs(0, 0);
        mv.visitEnd();
    }

    private void sameLocals1stackItemFrame(final ClassWriter cw) {
        MethodVisitor mv = cw.visitMethod(ACC_PUBLIC,
                "sameLocals1stackItemFrame", "()I", null, null);
        mv.visitCode();
        Label l0 = new Label();
        Label l1 = new Label();
        mv.visitTryCatchBlock(l0, l1, l0, null);
        mv.visitInsn(ICONST_0);
        mv.visitInsn(IRETURN);
        mv.visitFrame(F_SAME1, 0, null, 1,
                new Object[] { "java/lang/Throwable" });
        mv.visitLabel(l0);
        mv.visitVarInsn(ASTORE, 1);
        mv.visitLabel(l1);
        mv.visitInsn(ICONST_0);
        mv.visitInsn(IRETURN);
        mv.visitMaxs(0, 0);
        mv.visitEnd();
    }

    private void sameLocals1stackItemFrame2(final ClassWriter cw) {
        MethodVisitor mv = cw.visitMethod(ACC_PUBLIC,
                "sameLocals1stackItemFrame2", "()V", null, null);
        mv.visitCode();
        Label l0 = new Label();
        Label l1 = new Label();
        Label l2 = new Label();
        mv.visitTryCatchBlock(l0, l1, l2, "java/lang/Exception");
        Label l3 = new Label();
        mv.visitTryCatchBlock(l0, l1, l3, null);
        Label l4 = new Label();
        mv.visitTryCatchBlock(l2, l4, l3, null);
        Label l5 = new Label();
        mv.visitTryCatchBlock(l3, l5, l3, null);
        mv.visitLabel(l0);
        mv.visitTypeInsn(NEW, "java/lang/Object");
        mv.visitInsn(DUP);
        mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V");
        mv.visitVarInsn(ASTORE, 1);
        mv.visitLabel(l1);
        Label l6 = new Label();
        mv.visitJumpInsn(GOTO, l6);
        mv.visitFrame(F_SAME1, 0, null, 1,
                new Object[] { "java/lang/Exception" });
        mv.visitLabel(l2);
        mv.visitVarInsn(ASTORE, 2);
        mv.visitLabel(l4);
        mv.visitJumpInsn(GOTO, l6);
        mv.visitFrame(F_SAME1, 0, null, 1,
                new Object[] { "java


ar elems2 = r.yield;
    print(elems2);
    // Walk the elements of each iterable and compare them.
    var i = elems1.iterator;
    Expect.isTrue(i is Iterator);
    elems2.forEach((e) {
      Expect.isTrue(i.moveNext());
      Expect.equals(e, i.current);
    });

    print(sync);
    Expect.equals("sync", sync.single);

    print(einsZwei());
    Expect.equals("(1, 2, 3, 5, [6])", einsZwei().toString());
  }
}
// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import "package:expect/expect.dart";

// Test that interceptors (that is, methods in classes implemented as
// JavaScript primitives) in dart2js work.

class A {
  codeUnitAt(a) => a;
}

main() {
  var res = <dynamic>[[], 1, 'foo', new A()];
  Expect.throws(() => res[0].codeUnitAt(1));
  Expect.throws(() => (res[0].codeUnitAt)(1));

  Expect.throws(() => res[1].codeUnitAt(1));
  Expect.throws(() => (res[1].codeUnitAt)(1));

  Expect.equals(111, res[2].codeUnitAt(1));
  Expect.equals(111, (res[2].codeUnitAt)(1));
  Expect.throws(() => res[2].codeUnitAt(1, 4));
  Expect.throws(() => res[2].codeUnitAt());
  Expect.throws(() => (res[2].codeUnitAt)(1, 4));
  Expect.throws(() => (res[2].codeUnitAt)());

  Expect.equals(1, res[3].codeUnitAt(1));
  Expect.equals(1, (res[3].codeUnitAt)(1));
  Expect.throws(() => res[3].codeUnitAt(1, 4));
  Expect.throws(() => res[3].codeUnitAt());
  Expect.throws(() => (res[3].codeUnitAt)(1, 4));
  Expect.throws(() => (res[3].codeUnitAt)());
}
// Copyright (c) 2023, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// Tests that the appropriate runtime checks occur when a generic class has a
// field (or getter) whose type is a callable class, and that type makes
// contravariant use of the generic class's type parameter.

import 'package:expect/expect.dart';

// The callable class. Contains machinery to verify that it is called only when
// expected.
class Callable<U> {
  static int _callCount = 0;
  dynamic call() {
    ++_callCount;
    return this;
  }

  static void checkCallCount(int expected) {
    Expect.equals(expected, _callCount);
    _callCount = 0;
  }
}

// A generic class containing fields whose type is a callable class.
class Fields<T> {
  final Callable<void Function()> noUse = Callable<void Function()>();
  final Callable<T Function()> covariantUse = Callable<T Function()>();
  final Callable<void Function(T)> contravariantUse =
      Callable<void Function(T)>();
  final Callable<T Function(T)> invariantUse = Callable<T Function(T)>();
}

// A generic class containing getters whose type is a callable class.
class Getters<T> {
  final Fields<T> _fields = Fields<T>();

  Callable<void Function()> get noUse => _fields.noUse;
  Callable<T Function()


Second
			},
			2,
		},
		{
			"duration job - singleton",
			chDurationSingleton,
			DurationJob(time.Second * 10),
			func() {
				chDurationSingleton <- struct{}{}
				time.Sleep(200 * time.Millisecond)
			},
			[]JobOption{
				WithStartAt(
					WithStartImmediately(),
				),
				WithSingletonMode(LimitModeReschedule),
			},
			func() time.Duration {
				return 10 * time.Second
			},
			1,
		},
		{
			"one time job",
			chOneTime,
			OneTimeJob(OneTimeJobStartImmediately()),
			func() {
				chOneTime <- struct{}{}
			},
			nil,
			nil,
			2,
		},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			s := newTestScheduler(t)

			_, err := s.NewJob(tt.j, NewTask(tt.fun), tt.opts...)
			require.NoError(t, err)

			j := s.Jobs()[0]
			s.Start()

			var nextRunBefore time.Time
			if tt.expectedDiff != nil {
				for ; nextRunBefore.IsZero() || err != nil; nextRunBefore, err = j.NextRun() { //nolint:revive
				}
			}

			assert.NoError(t, err)

			time.Sleep(100 * time.Millisecond)
			require.NoError(t, j.RunNow())
			var runCount int

			select {
			case <-tt.ch:
				runCount++
			case <-time.After(time.Second):
				t.Fatal("timed out waiting for job to run")
			}

			timeout := time.Now().Add(time.Second)
			for time.Now().Before(timeout) {
				select {
				case <-tt.ch:
					runCount++
				default:
				}
			}

			assert.Equal(t, tt.expectedRuns, runCount)

			nextRunAfter, err := j.NextRun()
			if tt.expectedDiff != nil && tt.expectedDiff() > 0 {
				for ; nextRunBefore.IsZero() || nextRunAfter.Equal(nextRunBefore); nextRunAfter, err = j.NextRun() { //nolint:revive
					time.Sleep(100 * time.Millisecond)
				}
			}

			assert.NoError(t, err)
			assert.NoError(t, s.Shutdown())

			if tt.expectedDiff != nil {
				assert.Equal(t, tt.expectedDiff(), nextRunAfter.Sub(nextRunBefore))
			}
		})
	}
}

func TestScheduler_LastRunSingleton(t *testing.T) {
	defer verifyNoGoroutineLeaks(t)

	if testEnv != testEnvLocal {
		// this test is flaky in ci, but always passes locally
		t.SkipNow()
	}

	tests := []struct {
		name string
		f    func(t *testing.T, j Job, jobRan chan struct{})
	}{
		{
			"simple",
			func(_ *testing.T, _ Job, _ chan struct{}) {},
		},
		{
			"with runNow",
			func(t *testing.T, j Job, jobRan chan struct{}) {
				runTime := time.Now()
				assert.NoError(t, j.RunNow())

				// because we're using wait mode we need to wait here
				// to make sure the job queued with RunNow has finished running
				<-jobRan
				lastRun, err := j.LastRun()
				assert.NoError(t, err)
				assert.LessOrEqual(t, lastRun.Sub(runTime), time.Millisecond*225)
				assert.GreaterOrEqual(t, lastRun.Sub(runTime), time.Millisecond*175)
			},
		},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.


;
    margin-right: auto;
  }

  .lg\:-mx-0 {
    margin-left: -0px;
    margin-right: -0px;
  }

  .lg\:mr-auto {
    margin-right: auto;
  }

  .lg\:ml-0 {
    margin-left: 0px;
  }

  .lg\:mt-0 {
    margin-top: 0px;
  }

  .lg\:mt-16 {
    margin-top: 4rem;
  }

  .lg\:-mb-56 {
    margin-bottom: -14rem;
  }

  .lg\:-mr-24 {
    margin-right: -6rem;
  }

  .lg\:-mr-16 {
    margin-right: -4rem;
  }

  .lg\:block {
    display: block;
  }

  .lg\:flex {
    display: flex;
  }

  .lg\:hidden {
    display: none;
  }

  .lg\:h-28 {
    height: 7rem;
  }

  .lg\:h-full {
    height: 100%;
  }

  .lg\:h-auto {
    height: auto;
  }

  .lg\:h-12 {
    height: 3rem;
  }

  .lg\:h-64 {
    height: 16rem;
  }

  .lg\:h-80 {
    height: 20rem;
  }

  .lg\:h-56 {
    height: 14rem;
  }

  .lg\:w-6\/12 {
    width: 50%;
  }

  .lg\:w-3\/4 {
    width: 75%;
  }

  .lg\:w-1\/2 {
    width: 50%;
  }

  .lg\:w-2\/5 {
    width: 40%;
  }

  .lg\:w-3\/5 {
    width: 60%;
  }

  .lg\:w-7\/12 {
    width: 58.333333%;
  }

  .lg\:w-\[25\%\] {
    width: 25%;
  }

  .lg\:w-28 {
    width: 7rem;
  }

  .lg\:w-\[75\%\] {
    width: 75%;
  }

  .lg\:w-8\/12 {
    width: 66.666667%;
  }

  .lg\:w-max {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
  }

  .lg\:w-auto {
    width: auto;
  }

  .lg\:w-5\/12 {
    width: 41.666667%;
  }

  .lg\:w-10\/12 {
    width: 83.333333%;
  }

  .lg\:w-\[60\%\] {
    width: 60%;
  }

  .lg\:w-11\/12 {
    width: 91.666667%;
  }

  .lg\:w-2\/3 {
    width: 66.666667%;
  }

  .lg\:w-2\/6 {
    width: 33.333333%;
  }

  .lg\:w-4\/6 {
    width: 66.666667%;
  }

  .lg\:w-24 {
    width: 6rem;
  }

  .lg\:w-16 {
    width: 4rem;
  }

  .lg\:w-12 {
    width: 3rem;
  }

  .lg\:w-\[32\%\] {
    width: 32%;
  }

  .lg\:w-\[36\%\] {
    width: 36%;
  }

  .lg\:w-4\/12 {
    width: 33.333333%;
  }

  .lg\:w-full {
    width: 100%;
  }

  .lg\:w-64 {
    width: 16rem;
  }

  .lg\:w-56 {
    width: 14rem;
  }

  .lg\:max-w-max {
    max-width: -webkit-max-content


mov r0, #0
	mov r1, #0x1b
	mov r2, #0xb6
	mov r3, #4
	bl NewMsgDataFromNarc
	str r0, [sp, #0x30]
	mov r0, #4
	bl MessageFormat_New
	add r6, r0, #0
	mov r0, #0xb4
	mov r1, #4
	bl String_New
	add r7, r0, #0
	mov r0, #0xb4
	mov r1, #4
	bl String_New
	str r0, [sp, #0x2c]
	ldr r0, [sp, #0x14]
	add r1, r6, #0
	add r2, r4, #0
	bl ov03_022566D0
	ldr r0, [sp, #0x30]
	mov r1, #0x71
	add r2, r7, #0
	bl ReadMsgDataIntoString
	ldr r1, [sp, #0x2c]
	add r0, r6, #0
	add r2, r7, #0
	bl StringExpandPlaceholders
	mov r1, #0
	str r1, [sp]
	mov r0, #0xff
	str r0, [sp, #4]
	ldr r0, [sp, #0x18]
	ldr r2, [sp, #0x2c]
	mov r3, #0x39
	str r1, [sp, #8]
	bl AddTextPrinterParameterized
	mov r0, #0
	str r0, [sp, #0x28]
	mov r0, #0x10
	str r0, [sp, #0x1c]
	ldr r0, _02256A14 ; =ov03_02259820
	str r0, [sp, #0x24]
	ldr r0, _02256A18 ; =ov03_0225982C
	str r0, [sp, #0x20]
_022567F0:
	ldr r1, [sp, #0x28]
	ldr r0, [sp, #0x30]
	add r1, #0x5d
	add r2, r7, #0
	bl ReadMsgDataIntoString
	ldr r0, [sp, #0x1c]
	mov r1, #0
	str r0, [sp]
	mov r0, #0xff
	str r0, [sp, #4]
	mov r0, #0
	str r0, [sp, #8]
	ldr r0, [sp, #0x18]
	add r2, r7, #0
	mov r3, #2
	bl AddTextPrinterParameterized
	ldr r0, [sp, #0x14]
	ldr r1, [sp, #0x24]
	add r0, #0xa4
	ldrb r1, [r1]
	ldr r0, [r0]
	bl LinkBattleRuleset_GetRuleValue
	add r4, r0, #0
	ldr r0, [sp, #0x20]
	ldrb r5, [r0]
	ldr r0, [sp, #0x24]
	ldrb r0, [r0]
	cmp r0, #0xb
	bls _02256832
	b _02256994
_02256832:
	add r0, r0, r0
	add r0, pc
	ldrh r0, [r0, #6]
	lsl r0, r0, #0x10
	asr r0, r0, #0x10
	add pc, r0
_0225683E: ; jump table
	.short _02256994 - _0225683E - 2 ; case 0
	.short _02256856 - _0225683E - 2 ; case 1
	.short _0225686A - _0225683E - 2 ; case 2
	.short _02256880 - _0225683E - 2


rse_number": 98,
    "content":
        "Ketahuilah, bahwa Allah sangat keras siksaan-Nya dan bahwa Allah Maha Pengampun, Maha Penyayang"
  },
  {
    "surah_number": 5,
    "verse_number": 99,
    "content":
        "Kewajiban Rasul tidak lain hanyalah menyampaikan (amanat Allah), dan Allah mengetahui apa yang kamu tampakkan dan apa yang kamu sembunyikan"
  },
  {
    "surah_number": 5,
    "verse_number": 100,
    "content":
        "Katakanlah (Muhammad), \"Tidaklah sama yang buruk dengan yang baik, meskipun banyaknya keburukan itu menarik hatimu, maka bertakwalah kepada Allah wahai orang-orang yang mempunyai akal sehat, agar kamu beruntung"
  },
  {
    "surah_number": 5,
    "verse_number": 101,
    "content":
        "Wahai orang-orang yang beriman! Janganlah kamu menanyakan (kepada Nabimu) hal-hal yang jika diterangkan kepadamu, (justru) menyusahkan kamu. Jika kamu menanyakannya ketika Alquran sedang diturunkan, (niscaya) akan diterangkan kepadamu. Allah telah memaafkan (kamu) tentang hal itu. Dan Allah Maha Pengampun, Maha Penyantun"
  },
  {
    "surah_number": 5,
    "verse_number": 102,
    "content":
        "Sesungguhnya sebelum kamu telah ada segolongan manusia yang menanyakan hal-hal serupa itu (kepada nabi mereka), kemudian mereka menjadi kafir"
  },
  {
    "surah_number": 5,
    "verse_number": 103,
    "content":
        "(Allah tidak pernah mensyariatkan adanya Baḥīrah,298) Sāibah,299) Waṣīlah300) dan Ḥām.301) Tetapi orang-orang kafir membuat-buat kedustaan terhadap Allah, dan kebanyakan mereka tidak mengerti"
  },
  {
    "surah_number": 5,
    "verse_number": 104,
    "content":
        "Dan apabila dikatakan kepada mereka, \"Marilah (mengikuti) apa yang diturunkan Allah dan (mengikuti) Rasul.\" Mereka menjawab, \"Cukuplah bagi kami apa yang kami dapati nenek moyang kami (mengerjakannya).\" Apakah (mereka akan mengikuti) juga nenek moyang mereka walaupun nenek moyang mereka itu tidak mengetahui apa-apa dan tidak (pula) mendapat petunjuk"
  },
  {
    "surah_number": 5,
    "verse_number": 105,
    "content":
        "Wahai orang-orang yang beriman! Jagalah dirimu; (karena) orang yang sesat itu tidak akan membahayakanmu apabila kamu telah mendapat petunjuk. Hanya kepada Allah kamu semua akan kembali, kemudian Dia akan menerangkan kepadamu apa yang telah kamu kerjakan"
  },
  {
    "surah_number": 5,
    "verse_number": 106,
    "content":
        "Wahai orang-orang yang beriman! Apabila salah seorang (di antara) kamu menghadapi kematian, sedang dia akan berwasiat, maka hendaklah (wasiat itu


fi
      nop.m 999
      fclass.m p13,p12 = ArgY_orig, 0x0c3  // Test y nan
      nop.i 999
}
;;

{ .mfi
      nop.m 999
      fclass.m p15,p14 = ArgY_orig, 0x103  // Test y natval
      nop.i 999
}
;;

{ .mfi
      nop.m 999
(p12) fclass.m p13,p0 = ArgX_orig, 0x0c3  // Test x nan
      nop.i 999
}
;;

{ .mfi
      nop.m 999
(p14) fclass.m p15,p0 = ArgX_orig, 0x103  // Test x natval
      nop.i 999
}
;;

{ .mfb
      nop.m 999
(p13) fmpy.s0 Result = ArgX_orig, ArgY_orig // Result nan if x or y nan
(p13) br.ret.spnt b0                      // Exit if x or y nan
}
;;

{ .mfb
      nop.m 999
(p15) fmpy.s0 Result = ArgX_orig, ArgY_orig // Result natval if x or y natval
(p15) br.ret.spnt b0                      // Exit if x or y natval
}
;;

// Here if x or y inf or zero
ATANL_SPECIAL_HANDLING:
{ .mfi
      nop.m 999
      fclass.m p6, p7 = ArgY_orig, 0x007        // Test y zero
      mov special = 992                         // Offset to table
}
;;

{ .mfb
      add table_ptr1 = table_base, special      // Point to 3pi/4
      fcmp.eq.s0 p0, p9 = ArgX_orig, ArgY_orig  // Dummy to set denormal flag
(p7)  br.cond.spnt ATANL_ArgY_Not_ZERO          // Branch if y not zero
}
;;

// Here if y zero
{ .mmf
      ldfd  Result = [table_ptr1], 8            // Get pi high
      nop.m 999
      fclass.m p14, p0 = ArgX, 0x035            // Test for x>=+0
}
;;

{ .mmf
      nop.m 999
      ldfd  Result_lo = [table_ptr1], -8        // Get pi lo
      fclass.m p15, p0 = ArgX, 0x036            // Test for x<=-0
}
;;

//
//     Return sign_Y * 0 when  ArgX > +0
//
{ .mfi
      nop.m 999
(p14) fmerge.s Result = ArgY, f0               // If x>=+0, y=0, hi sgn(y)*0
      nop.i 999
}
;;

{ .mfi
      nop.m 999
      fclass.m p13, p0 = ArgX, 0x007           // Test for x=0
      nop.i 999
}
;;

{ .mfi
      nop.m 999
(p14) fmerge.s Result_lo = ArgY, f0            // If x>=+0, y=0, lo sgn(y)*0
      nop.i 999
}
;;

{ .mfi
(p13) mov GR_Parameter_TAG = 36                // Error tag for x=0, y=0
      nop.f 999
      nop.i 999
}
;;

//
//     Return sign_Y * pi when  ArgX < -0
//
{ .mfi
      nop.m 999
(p15) fmerge.s Result = ArgY, Result           // If x<0, y=0, hi=sgn(y)*pi
      nop.i 999
}
;;

{ .mfi
      nop.m 999
(p15) fmerge.s Result_lo = ArgY, Result_lo     // If x<0, y=0, lo=sgn(y)*pi
      nop.i 999
}
;;

//
//     Call error support function for atan(0,0)
//
{ .mfb
      nop.m 999


NFO)
    {
      CScraperUrl scrUrl(nfoReader.ScraperUrl());
      CMusicAlbumInfo albumNfo("nfo",scrUrl);
      ADDON::ScraperPtr nfoReaderScraper = nfoReader.GetScraperInfo();
      CLog::Log(LOGDEBUG,"-- nfo-scraper: %s", nfoReaderScraper->Name().c_str());
      CLog::Log(LOGDEBUG,"-- nfo url: %s", scrUrl.m_url[0].m_url.c_str());
      scraper.SetScraperInfo(nfoReaderScraper);
      scraper.GetAlbums().clear();
      scraper.GetAlbums().push_back(albumNfo);
    }
    else if (result != CNfoFile::PARTIAL_NFO)
      CLog::Log(LOGERROR,"Unable to find an url in nfo file: %s", strNfo.c_str());
  }

  if (!scraper.CheckValidOrFallback(CSettings::GetInstance().GetString(CSettings::SETTING_MUSICLIBRARY_ALBUMSSCRAPER)))
  { // the current scraper is invalid, as is the default - bail
    CLog::Log(LOGERROR, "%s - current and default scrapers are invalid.  Pick another one", __FUNCTION__);
    return INFO_ERROR;
  }

  if (!scraper.GetAlbumCount())
  {
    scraper.FindAlbumInfo(album.strAlbum, album.GetAlbumArtistString());

    while (!scraper.Completed())
    {
      if (m_bStop)
      {
        scraper.Cancel();
        return INFO_CANCELLED;
      }
      Sleep(1);
    }
    /*
    Finding album may request data from Musicbrainz.
    MusicBrainz rate-limits queries to 1 per sec, once we hit the rate-limiter
    the server returns 503 errors for all calls from that IP address.
    To stay below the rate-limit threshold wait 1s before proceeding
    */
    Sleep(1000);
  }

  CGUIDialogSelect *pDlg = NULL;
  int iSelectedAlbum=0;
  if ((result == CNfoFile::NO_NFO || result == CNfoFile::PARTIAL_NFO)
      && !bMusicBrainz)
  {
    iSelectedAlbum = -1; // set negative so that we can detect a failure
    if (scraper.Succeeded() && scraper.GetAlbumCount() >= 1)
    {
      double bestRelevance = 0;
      double minRelevance = THRESHOLD;
      if (scraper.GetAlbumCount() > 1) // score the matches
      {
        //show dialog with all albums found
        if (pDialog)
        {
          pDlg = (CGUIDialogSelect*)g_windowManager.GetWindow(WINDOW_DIALOG_SELECT);
          pDlg->SetHeading(CVariant{g_localizeStrings.Get(181)});
          pDlg->Reset();
          pDlg->EnableButton(true, 413); // manual
        }

        for (int i = 0; i < scraper.GetAlbumCount(); ++i)
        {
          CMusicAlbumInfo& info = scraper.GetAlbum(i);
          double relevance = info.GetRelevance();
          if (relevance < 0)
            relevance = CUtil::AlbumRelevance(info.GetAlbum().strAlbum, album.strAlbum,
                        info.GetAlbum().GetAlbumArtistString(),
                        album.GetAlbumArtistString());

          // if we're doing auto-selection (ie querying all albums at once, then allow 95->100% for perfect matches)
          // otherwise, perfect matches only
          if (relevance >= std::max(minRelevance, bestRelevance))
          { // we auto-select the best of these
            bestRelevance = relevance;
            iSelectedAlbum = i;
          }
          if (pDialog)
          {
            // set the label to [relevance]  album - artist
            std::string strTemp = StringUtils::Format("[%0.2f]  %s", relevance, info.GetTitle2().c_str());
            CFileItem item(strTemp);
            item.m_idepth = i; // u


ointer-events: none;
}

notify-gp notify {
    display: -webkit-flex;
    align-items: center;

    margin: 0;
    margin-top: 15px;
    padding: 14px 24px;

    min-width: 288px;
    max-width: 568px;

    height: 48px;
    max-height: 48px;

    color: rgba(255, 255, 255, .7);
    background-color: rgba(50, 50, 50, 1);

    box-sizing: border-box;
    border-radius: 2px;
    pointer-events: auto;
    user-select: none;

    opacity: 0;
    transform: scaleY(0);
    transform-origin: left top 0px;
    transition: transform 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms, opacity 1s cubic-bezier(0.23, 1, 0.32, 1) 0ms;
}

notify-gp notify-title {
    font-size: 13px;
    font-weight: bold;
}

notify-gp notify-content {
    display: block;

    font-size: 14px;
    text-align: left;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

notify-gp notify-content a,
notify-gp notify-content a:link,
notify-gp notify-content a:visited,
notify-gp notify-content a:active {
    margin: inherit;
    padding-bottom: 5px;

    color: #fff;
    font-size: inherit;

    text-decoration: none;

    transition: color .5s;
}

notify-gp notify-content a:hover {
    margin: initial;
    padding: initial;

    color: inherit;
    font-size: inherit;

    text-decoration: none;
}

notify-gp notify-i {
    display: none;

    margin: 0 10px 0 0;

    width: 24px;
    height: 24px;

    background-position: center;
    background-repeat: no-repeat;
}

notify-gp notify-action {
    display: none;

    margin: 0 0 0 24px;

    max-width: 80px;
    min-width: 56px;

    color: rgba(255, 238, 88, 1);

    font-size: inherit;
    text-transform: uppercase;
    text-align: right;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    cursor: pointer;
}

notify-gp notify-a {
    display: block;
    position: absolute;

    top: 5px;
    right: 5px;

    cursor: pointer;
}

notify-gp notify-a notify-span {
    display: block;
    width: 16px;
    height: 16px;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABpFBMVEUAAADl5eXj4+NSVFRTVVVaXFxLTU1hY2NdX18pLCwhJCSdnp5sbm6HiYmjpKSDhYX///+rrKytrq6XmJgzNTUoKyt3eXlydHRlZ2dbXV1ucHB4enrv7++KjIyIiort7e1oamosLy8aHR0VGBgUFxcbHh4rLi5oamprbGwgIyMKDQ0KDQ0iJSVjZWWfoaEkJiYICwsLDg4KDQ0MDw8iJSWMjo41ODgMDw8JDAw2OTkvMTELDg4LDg4xMzM1NzcJDAwLDg40NjYeISEHCgoeISFkZmYtLy8yNDRvcXEWGRkHCgoaHR3///8RFBQHCgohJCShoqLIyMgaHR0HCgoZGxv4


});
   }

   private void renderWindow1()
   {
      if (ImGui.beginTabBar("main"))
      {
         if (ImGui.beginTabItem("Window"))
         {
            ImGui.text("Tab bar detected!");
            ImGui.endTabItem();
         }
         ImGui.endTabBar();
      }
      ImGui.text(StringTools.format3D("Time: {} s", stopwatch.totalElapsed()).get());
      ImGui.button("I'm a Button!");
      float[] values = new float[100];
      for (int i = 0; i < 100; i++)
      {
         values[i] = i;
      }
      ImGui.plotLines("Histogram", values, 100);
      renderPlot.calculate(renderCount++);

      logArea.renderImGuiWidgets();
   }

   private void renderWindow2()
   {
   }

   private void renderWindow3()
   {
   }

   public static void main(String[] args)
   {
      new RDXImGuiBasedUI2DDemo();
   }
}
package us.ihmc;

import org.bytedeco.opencl._cl_kernel;
import org.bytedeco.opencl._cl_program;
import org.bytedeco.opencl.global.OpenCL;
import us.ihmc.euclid.transform.RigidBodyTransform;
import us.ihmc.perception.BytedecoImage;
import us.ihmc.perception.RawImage;
import us.ihmc.perception.opencl.OpenCLFloatParameters;
import us.ihmc.perception.opencl.OpenCLManager;
import us.ihmc.perception.opencl.OpenCLRigidBodyTransformParameter;
import us.ihmc.robotics.referenceFrames.MutableReferenceFrame;

public class DepthImageOverlapRemover
{
   private final OpenCLManager openCLManager;
   private final _cl_program openCLProgram;
   private final _cl_kernel kernel;
   private final OpenCLFloatParameters parameters = new OpenCLFloatParameters();
   private final OpenCLRigidBodyTransformParameter zedToRealsenseTransformParameter = new OpenCLRigidBodyTransformParameter();

   private final MutableReferenceFrame zedFrame = new MutableReferenceFrame();
   private final RigidBodyTransform zedToRealsenseTransform = new RigidBodyTransform();

   private final MutableReferenceFrame realsenseFrame = new MutableReferenceFrame();
   private final Object imageDataUsageSynchronizer = new Object();

   private BytedecoImage bytedecoLowQualityImage;
   private RawImage highQualityImage;

   private BytedecoImage bytedecoZEDOutput;

   public DepthImageOverlapRemover()
   {
      this.openCLManager = new OpenCLManager();
      openCLProgram = openCLManager.loadProgram("DepthOverlapRemover", "PerceptionCommon.cl");
      kernel = openCLManager.createKernel(openCLProgram, "removeDepthOverlap");
   }

   /**
    * Sets the high quality image (the unmodified image)
    *
    * @param highQualityImage the high quality image
    */
   public void setHighQualityImage(RawImage highQualityImage)
   {
      synchronized (imageDataUsageSynchronizer)
      {
         if (this.highQualityImage != null)
         {
            this.highQualityImage.release();
         }
         this.highQualityImage = highQualityImage;
      }
   }

   /**
    * Removes the overlapping region between the high quality and low quality image from the low quality image.
    * The high quality image will not be modified, while the low quality image will have the overlapping portion cut out.
    *
    * @param lowQualityImage the low quality image which will have the overlapping portion cut out
    * @return A new RawImage object which is the provided low quality image without the overlapping section.
    */
   public RawImage removeOverlap(RawImage lowQualityImage, int allowedOverlap)
   {
      lowQualityImage.get();

      synchronized (imageDataUsageSynchronizer)
      {
         if (highQualityImage == null || highQualityImage.isEmpty())


/* FCE Ultra - NES/Famicom Emulator
 *
 * Copyright notice for this file:
 *  Copyright (C) 2012 CaH4e3
 *
 * 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 2 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, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */

#include "mapinc.h"

static uint8 reg0, reg1;

static SFORMAT StateRegs[] =
{
	{ &reg0, 1, "REG0" },
	{ &reg1, 1, "REG1" },
	{ 0 }
};

static void Sync(void) {
	setprg32(0x8000, (reg1 & 1) + ((reg0 & 0xF) << 1));
	setchr8(((reg1 >> 4) & 7) + ((reg0 & 0xF0) >> 1));
}

static DECLFW(M46Write0) {
	reg0 = V;
	Sync();
}

static DECLFW(M46Write1) {
	reg1 = V;
	Sync();
}

static void M46Power(void) {
	reg0 = reg1 = 0;
	Sync();
	SetReadHandler(0x8000, 0xFFFF, CartBR);
	SetWriteHandler(0x6000, 0x7FFF, M46Write0);
	SetWriteHandler(0x8000, 0xFFFF, M46Write1);
}

static void M46Reset(void) {
	reg0 = reg1 = 0;
	Sync();
}

static void StateRestore(int version) {
	Sync();
}

void Mapper46_Init(CartInfo *info) {
	info->Power = M46Power;
	info->Reset = M46Reset;
	GameStateRestore = StateRestore;
	AddExState(&StateRegs, ~0, 0, 0);
}


namespace Squalr.Engine.Common.Hardware
{
    using System;
    using System.Numerics;

    /// <summary>
    /// A class containing convenience methods and properties for hardware vectors.
    /// </summary>
    public static class Vectors
    {
        /// <summary>
        /// A vector with all bits set to 1. TODO: If C# ever adds support for extension properties, this would be great to offload onto all Vector{T} types.
        /// </summary>
        public static readonly Vector<Byte> AllBits = Vector.OnesComplement(Vector<Byte>.Zero);

        /// <summary>
        /// Initializes static members of the <see cref="Vectors" /> class.
        /// </summary>
        static Vector


				d.Line(xRight, y+offset, xRight, y+offset+4, tickColor)
			}
			drawMiddleTicks = func(offset int) {
				for i := freq; i <= innerTickCount; i += freq {
					x := xLeft + int(float64(i)*scale+0.5)
					d.Line(x, y+offset, x, y+offset+3, tickColor)
				}
			}
		}
	} else {
		yTop := y + 13
		yBottom := y + h - 14
		scale := 1.0 / float64(innerTickCount+1) * float64(yBottom-yTop)
		if yBottom < yTop {
			yBottom = yTop
			scale = 0
		}
		yOffset := int(float64(relCursor)*scale + 0.5)
		cursorCenter := yTop + yOffset

		drawSlideBar = func(offset int) {
			if yTop != yBottom {
				d.DrawRect(x+offset, y+8, 4, h-16, slideBarBorder)
				d.FillRect(x+offset+1, y+9, 2, h-18, slideBarBackground)
			}
		}
		drawCursorBody = func(offset, size int) {
			d.FillRect(x+offset, cursorCenter-5, size, 11, cursorColor)
		}
		drawCursorArrow = func(offset int) {
			d.Polygon([]wui.Point{
				{int32(x + 15), int32(cursorCenter - 5)},
				{int32(x + 15 + offset), int32(cursorCenter)},
				{int32(x + 15), int32(cursorCenter + 5)},
			}, cursorColor)
		}

		if s.TicksVisible() {
			drawEndTicks = func(offset int) {
				d.Line(x+offset, yTop, x+offset+4, yTop, tickColor)
				d.Line(x+offset, yBottom, x+offset+4, yBottom, tickColor)
			}
			drawMiddleTicks = func(offset int) {
				for i := freq; i <= innerTickCount; i += freq {
					y := yTop + int(float64(i)*scale+0.5)
					d.Line(x+offset, y, x+offset+3, y, tickColor)
				}
			}
		}
	}

	switch s.TickPosition() {
	case wui.TicksBottomOrRight:
		drawSlideBar(8)
		drawCursorBody(2, 14)
		drawCursorArrow(5)
		drawEndTicks(22)
		drawMiddleTicks(22)
	case wui.TicksTopOrLeft:
		drawSlideBar(18)
		drawCursorBody(15, 14)
		drawCursorArrow(-5)
		drawEndTicks(5)
		drawMiddleTicks(6)
	case wui.TicksOnBothSides:
		drawSlideBar(19)
		drawCursorBody(10, 21)
		drawEndTicks(5)
		drawEndTicks(33)
		drawMiddleTicks(6)
		drawMiddleTicks(33)
	default:
		panic("unhandled tick position")
	}
}

func drawLabel(l *wui.Label, d drawer) {
	x, y, w, h := l.Bounds()
	textW, textH := d.TextExtent(l.Text())
	textX := x
	switch l.Alignment() {
	case wui.AlignCenter:
		textX = x + (w-textW)/2
	case wui.AlignRight:
		textX = x + w - textW
	}
	d.PushDrawRegion(x, y, w, h)
	d.TextOut(textX, y+(h-textH)/2, l.Text(), wui.RGB(0, 0, 0))
	d.PopDrawRegion()
}

func drawPaintBox(p *wui.PaintBox, d


_.level then
      self.uiBinder.slider.fillAmount = self.weapon_.experience / config.Exp
    else
      self.uiBinder.slider.fillAmount = 0
    end
  end
  local nowAttr = self.weaponVm_.GetAttrPreview(self.weapon_.professionId, self.weapon_.level, false)
  local nextAttr = self.weaponVm_.GetAttrPreview(self.weapon_.professionId, recordLv, true)
  local attr = {}
  for index, value in ipairs(nextAttr) do
    if nowAttr[value.attrId] == nil then
      nowAttr[value.attrId] = 0
    end
    attr[index] = {}
    attr[index].attrId = value.attrId
    attr[index].number = value.number - nowAttr[value.attrId]
  end
  local path = self.uiBinder.uiprefab_cashedata:GetString("attr_tpl")
  local root = self.uiBinder.layout_info
  for _, value in ipairs(self.attrUnits_) do
    self:RemoveUiUnit(value)
  end
  self.attrUnits_ = {}
  Z.CoroUtil.create_coro_xpcall(function()
    for _, value in ipairs(attr) do
      local name = value.attrId
      table.insert(self.attrUnits_, name)
      local unit = self:AsyncLoadUiUnit(path, name, root)
      local nowvalue = self.fightAttrParseVm_.ParseFightAttrNumber(value.attrId, nowAttr[value.attrId], true)
      local diffValue = self.fightAttrParseVm_.ParseFightAttrNumber(value.attrId, value.number, true)
      local str = nowvalue
      if value.number > 0 then
        str = nowvalue .. Z.Placeholder.SetTextSize(Z.RichTextHelper.ApplyStyleTag("+" .. diffValue, E.TextStyleTag.AttrUp))
      end
      self:refreshAttrUnit(unit, value.attrId, str)
    end
  end)()
end

function Talent_attr_info_subView:refreshOverStepAttr()
  if self.weapon_.level == self.maxLv_ then
    self:refreshDefaultAttr()
    return
  end
  local recordLv = self.weapon_.level + 1
  local recordconfig = Z.TableMgr.GetTable("WeaponLevelTableMgr").GetRow(recordLv)
  if not recordconfig then
    return
  end
  self.uiBinder.lab_name.text = Lang("WeaponProficiency") .. self.weapon_.level .. "/" .. self.maxLv_
  self.uiBinder.Ref:SetVisible(self.uiBinder.img_reddot, recordLv ~= self.weapon_.level and self.img_reddot_ and self.talentSkillVm_.IsCanShowRedDot())
  if recordLv == self.maxLv_ then
    local config = Z.TableMgr.GetTable("WeaponLevelTableMgr").GetRow(self.maxLv_ - 1)
    if config == nil then
      return
    end
    self.uiBinder.slider_sens.fillAmount = 0
    self.uiBinder.slider.fillAmount = 1
    self.uiBinder.lab_value.text = config.Exp .. "/" .. config.Exp
  else
    local config = Z.TableMgr.GetTable("WeaponLevelTableMgr").GetRow(self.weapon_.level)
    if config == nil then
      return
    end
    self.uiBinder.slider_sens.fillAmount = 0 / recordconfig.Exp
    self.uiBinder.lab_value.text = "0/" .. recordconfig.Exp
    if recordLv == self.weapon_.level then
      self.uiBinder.slider.fillAmount = self.weapon_.experience / config.Exp
    else
      self.uiBinder.slider.fillAmount = 0
    end
  end
  local nowAttr = self.weaponVm_.GetAttrPreview(self.weapon_.professionId, se


n your app's needs.
*/
@media (min-width: 48em) {

    .header,
    .content {
        padding-left: 2em;
        padding-right: 2em;
    }

    #layout {
        padding-left: 150px; /* left col width "#menu" */
        left: 0;
    }
    #menu {
        left: 150px;
    }

    .menu-link {
        position: fixed;
        left: 150px;
        display: none;
    }

    #layout.active .menu-link {
        left: 150px;
    }
}

@media (max-width: 48em) {
    /* Only apply this when the window is small. Otherwise, the following
    case results in extra padding on the left:
        * Make the window small.
        * Tap the menu to trigger the active state.
        * Make the window large again.
    */
    #layout.active {
        position: relative;
        left: 150px;
    }
    .menu-link.active{
        left:150px;
    }
}
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap');
 *, *:before, *:after {
	 box-sizing: border-box;
}
label {
	display: none !important;
}

body {
	 min-height: 100vh;
     font-family: 'IBM Plex Sans', sans-serif !important;
     height: 100%;
     width: 100%;
     position: absolute;
}
 .container {
	 position: relative;
	 width: 100% !important;
	 height: 100%;
	 overflow: hidden;
}
 .container:hover .top:before, .container:active .top:before, .container:hover .bottom:before, .container:active .bottom:before, .container:hover .top:after, .container:active .top:after, .container:hover .bottom:after, .container:active .bottom:after {
	 margin-left: 200px;
	 transform-origin: -200px 50%;
	 transition-delay: 0s;
}
 .container:hover .signin, .container:active .signin {
	 opacity: 1;
	 transition-delay: 0.2s;
}

.container:hover .register, .container:active .register {
	opacity: 1;
	transition-delay: 0.2s;
}
 .top:before, .bottom:before, .top:after, .bottom:after {
	 content: '';
	 display: block;
	 position: absolute;
	 width: 200vmax;
	 height: 200vmax;
	 top: 50%;
	 left: 50%;
	 margin-top: -100vmax;
	 transform-origin: 0 50%;
	 transition: all 0.5s cubic-bezier(0.445, 0.05, 0, 1);
	 z-index: 10;
	 opacity: 0.65;
	 transition-delay: 0.2s;
}
 .top:before {
	 transform: rotate(45deg);
	 background:#3caea3;
}
 .top:after {
	 transform: rotate(135deg);
	 background: #3e7ae7;
}
 .bottom:before {
	 transform: rotate(-45deg);
	 background:#3caea3;
}
 .bottom:after {
	 transform: rotate(-135deg);
	 background: #20639b;
}
 .signin {
	 position: absolute;
	 width: 400px;
	 height: 400px;
	 top: 48%;
	 left: 50%;
	 margin-left: -200px;
	 margin-top: -200px;
	 display: flex;
	 flex-direction: column;
	 justify-content: center;
	 align-items: center;
	 padding: 30px;
	 opacity: 0;
	 transition: all 0.5s cubic-bezier(0.445, 0.05, 0, 1);
	 transition-delay: 0s;

}
 .signin input {
	 width: 100%;
	 margin: 8px;
}

.register {
	position: absolute;
	width: 400px;
	height: 400px;
	top: 55%;
	left: 50%;
	margin-left: -200px;
	margin-top: -200px;
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding:


from gitmostwanted.models.repo import Repo
from gitmostwanted.app import db

class User(db.Model):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(120), unique=True)
    username = db.Column(db.String(80))
    github_id = db.Column(db.BigInteger, unique=True)

class UserAttitude(db.Model):
    __tablename__ = 'users_attitude'

    user = db.relationship(User)
    user_id = db.Column(
        db.Integer,
        db.ForeignKey('users.id', name='fk_users_id', ondelete='CASCADE'),
        primary_key=True
    )
    repo = db.relationship(Repo, lazy=False)
    repo_id = db.Column(
        db.BigInteger,
        db.ForeignKey('repos.id', name='fk_repos_id', ondelete='CASCADE'),
        primary_key=True, index=True
    )
    attitude = db.Column(db.Enum('like', 'dislike', 'neutral'), nullable=False)

    @classmethod
    def join_by_user_and_repo(cls, query, user_id: int, repo_id: int):
        return query.outerjoin(cls, (cls.user_id == user_id) & (cls.repo_id == repo_id))

    @classmethod
    def list_liked_by_user(cls, user_id: int):
        """
        @type user_id: int
        @rtype: list
        """
        return cls.query.filter(cls.user_id == user_id).filter(cls.attitude == 'like').all()

    @staticmethod
    def like(user_id: int, repo_id: int):
        return UserAttitude(user_id=user_id, repo_id=repo_id, attitude='like')


mits_{i=1}^n f\left (\frac{x_{i-1}+x_i}{2} \right)\Delta x_i \right | \leq \frac{(b-a)^3}{24N^2}M_2$$

Bên cạnh đó, ta cũng có sai số công thức hình thang

$$ \left | \int\limits_a^b f(x)dx - \sum\limits_{i=1}^n \frac{f(x_{i-1})-f(x_i)}{2} \Delta x_i \right | \leq \frac{(b-a)^3}{12N^2}M_2$$

**Nhận xét:** Từ 4 công thức sai số trên, ta có thể thấy công thức hình thang và tổng Riemann giữa có thể xấp xỉ giá trị tích phân tốt hơn khi $N\to\infty$, do 2 công thức này tỉ lệ nghịch với $N^2$, trong khi sai số của tổng Riemann trái và phải chỉ tỉ lệ nghịch với $N$.

+++ {"id": "vrYyWScdxG8b"}

## 3. Bài tập
1. Thành lập 1 hàm Python để tính gần đúng tích phân bằng tổng Riemann, với $5$ tham số đầu vào $f$, $a$, $b$, $N$ và $m$. Trong đó:
  *   $f$ là hàm trong dấu tích phân.
  *   $[a,b]$ là miền giá trị.
  *   $N$ là số đoạn chia.
  *   $m$ là dạng của tổng Riemann (trái, phải, hoặc giữa).

2. Tìm số đoạn chia $N$ để sai số của tổng Riemann *giữa* của hàm $f(x)=\frac{1}{x}$ trên đoạn $[0,1]$ không vượt quá $10^{-6}$.

3. Hệ số lực nâng $c_l$ đối với một biên dạng cánh máy bay được tính bằng cách tích phân hệ số áp suất $C_p$ (bỏ qua ma sát) trên toàn bộ bề mặt cánh. File Excel [NACA 2412_Cp_alpha5.xlsx](https://drive.google.com/file/d/1ZKIN0e7oUX1vNmkV5xFAlwAWFB_LCVVs/view?usp=sharing) chứa toạ độ các điểm $x$, $y$ của một biên dạng cánh máy bay NACA 2412 ở góc tấn $\alpha=5^{\circ}$ và hệ số áp suất tại từng điểm. Tính xấp xỉ lực nâng đối với biên dạng cánh máy bay này bằng phương pháp tổng Riemann, biết
  *   $c_l = \cos(\alpha)\int\limits_0^1(C_{p,l}-C_{p,u})dx - \sin(\alpha)\int\limits_0^1 \left (C_{p,u}\frac{dy_u}{dx}-C_{p,l}\frac{dy_l}{dx} \right )dx$
  *   $C_{p,u}$ là hệ số áp


, BOOST_PP_TUPLE_EAT_4)(o(174, s), p, o, m)
# define BOOST_PP_FOR_174_I(s, p, o, m) BOOST_PP_IF(p(175, s), m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IF(p(175, s), BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(o(175, s), p, o, m)
# define BOOST_PP_FOR_175_I(s, p, o, m) BOOST_PP_IF(p(176, s), m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IF(p(176, s), BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(o(176, s), p, o, m)
# define BOOST_PP_FOR_176_I(s, p, o, m) BOOST_PP_IF(p(177, s), m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IF(p(177, s), BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(o(177, s), p, o, m)
# define BOOST_PP_FOR_177_I(s, p, o, m) BOOST_PP_IF(p(178, s), m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IF(p(178, s), BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(o(178, s), p, o, m)
# define BOOST_PP_FOR_178_I(s, p, o, m) BOOST_PP_IF(p(179, s), m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IF(p(179, s), BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(o(179, s), p, o, m)
# define BOOST_PP_FOR_179_I(s, p, o, m) BOOST_PP_IF(p(180, s), m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IF(p(180, s), BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(o(180, s), p, o, m)
# define BOOST_PP_FOR_180_I(s, p, o, m) BOOST_PP_IF(p(181, s), m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IF(p(181, s), BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(o(181, s), p, o, m)
# define BOOST_PP_FOR_181_I(s, p, o, m) BOOST_PP_IF(p(182, s), m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IF(p(182, s), BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(o(182, s), p, o, m)
# define BOOST_PP_FOR_182_I(s, p, o, m) BOOST_PP_IF(p(183, s), m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IF(p(183, s), BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(o(183, s), p, o, m)
# define BOOST_PP_FOR_183_I(s, p, o, m) BOOST_PP_IF(p(184, s), m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IF(p(184, s), BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(o(184, s), p, o, m)
# define B


u8], offset: usize, color: Color) {
    framebuffer[offset + 0] = color[0];
    framebuffer[offset + 1] = color[1];
    framebuffer[offset + 2] = color[2];
    framebuffer[offset + 3] = color[3];
}

/// Perform a DMA transfer from memory to the sprite access table
pub fn oam_dma_transfer(mem: &mut Memory) {
    let start_addr = (mem.gpu.dma as u16) << 8;

    for i in 0..OAM_SIZE {
        mem.gpu.oam[i] = mem.lb(start_addr.wrapping_add(i as u16));
    }
}
<gh_stars>100-1000
// Copyright 2020-2021 <NAME>
// SPDX-License-Identifier: Apache-2.0

//! Types and traits for helping ensure the authenticity and integrity of
//! DID Documents and Verifiable Credentials.

mod jcs_ed25519;

pub use self::jcs_ed25519::JcsEd25519;
Uporedi površi figura na slici. Figure obeleži brojevima od 1 do 6, počevši od one koja ima najmanju površ.

@vspace@
@center@ @mycanvas()@                  <reponame>digama0/mm0
//! Import and export functionality for MMB binary proof format
//!
//! See [`mm0-c/verifier.c`] for information on the MMB format.
//!
//! [`mm0-c/verifier.c`]: https://github.com/digama0/mm0/blob/master/mm0-c/verifier.c

// rust lints we want
#![warn(
  bare_trait_objects,
  elided_lifetimes_in_paths,
  missing_copy_implementations,
  missing_debug_implementations,
  future_incompatible,
  rust_2018_idioms,
  trivial_numeric_casts,
  variant_size_differences,
  unreachable_pub,
  unused,
  missing_docs
)]
// all the clippy
#![warn(clippy::all, clippy::pedantic, clippy::nursery, clippy::cargo)]
// all the clippy::restriction lints we want
#![warn(
  clippy::else_if_without_else,
  clippy::float_arithmetic,
  clippy::get_unwrap,
  clippy::inline_asm_x86_att_syntax,
  clippy::integer_division,
  clippy::rc_buffer,
  clippy::rest_pat_in_fully_bound_structs,
  clippy::string_add,
  clippy::unwrap_used
)]
// all the clippy lints we don't want
#![allow(
  clippy::cognitive_complexity,
  clippy::comparison_chain,
  clippy::default_trait_access,
  clippy::inline_always,
  clippy::manual_filter_map,
  clippy::map_err_ignore,
  clippy::missing_const_for_fn,
  clippy::missing_errors_doc,
  clippy::missing_panics_doc,
  clippy::module_name_repetitions,
  clippy::multiple_crate_versions,
  clippy::option_if_let_else,
  clippy::semicolon_if_nothing_returned,
  clippy::shadow_unrelated,
  clippy::too_many_lines,
  clippy::use_self
)]

mod parser;
mod ty;
mod write;

use std::convert::{TryFrom, TryInto};
use std::ffi::CStr;
use std::mem::size_of;

use byteorder::LE;
use mm0_util::{Modifiers, SortId, TermId, ThmId};
use ze


的情不自禁！" },
    430160: { nxId: 1, scene: 43104, doing: 2, item: 220003, music: "", sound: "", txt: "[博文朗]甜美的代价。" },
    430161: { nxId: 1, scene: 43104, doing: 2, item: 211002, music: "", sound: "", txt: "[我]真想再抽你一次，\n可这会弄痛我的手。" },

    430162: { nxId: 1, scene: 43104, doing: 2, item: 220003, music: "t2", sound: "jinzhan", txt: "[博文朗]如果你不解气，看看这景色，\n锡切斯，我心目中第二的美好。" },
    430163: { nxId: 1, scene: 43104, doing: 2, item: 220005, music: "", sound: "", txt: "[博文朗]我把它献给你，以表达我的歉意。" },
    430164: { nxId: 1, scene: 43104, doing: 1, item: 0, music: "", sound: "", txt: "你转头看着窗外，那已是澄澈的天\n与粼粼的海，确实让你凌乱的心情\n好了几分。" },
    430165: { nxId: 1, scene: 43104, doing: 2, item: 211001, music: "", sound: "", txt: "[我]你可真会占便宜……\n这地方跟你有关系吗？" },

    //锡切斯街道（雨）
    430166: { nxId: 1, scene: 43201, doing: 0, item: 0, music: "bowenlang", sound: "", txt: "背景初始化" },
    430167: { nxId: 1, scene: 43204, doing: 1, item: 0, music: "", sound: "", txt: "一出火车站，外面就是瓢泼大雨，\n路上都是奔跑躲雨的行人。" },
    430168: { nxId: 1, scene: 43204, doing: 2, item: 211001, music: "", sound: "", txt: "[我]这就是你献给我的锡切斯？" },
    430169: { nxId: 1, scene: 43204, doing: 2, item: 211001, music: "", sound: "", txt: "[我]真是遗憾，\n看来老天并不想让我原谅你。" },
    430170: { nxId: 1, scene: 43204, doing: 2, item: 220005, music: "", sound: "", txt: "[博文朗]别担心，地中海的雨来的猛烈，\n但是去的也快。" },
    430171: { nxId: 1, scene: 43204, doing: 2, item: 211001, music: "", sound: "", txt: "[我]那现在怎么办？在这干等吗？" },
    430172: { nxId: 1, scene: 43204, doing: 2, item: 220003, music: "", sound: "", txt: "[博文朗]不用，我带伞了。" },
    430173: { nxId: 1, scene: 43204, doing: 1, item: 0, music: "", sound: "", txt: "博文朗从包里翻出一把小伞，\n撑开只能遮住你的肩膀。" },
    430174: { nxId: 1, scene: 43204, doing: 2, item: 211001, music: "", sound: "", txt: "[我]这是女式用伞吧？" },
    43017


�体的版本号值。

```xml
<properties>
    <com.ykl.spring.version>4.1.0.RELEASE</com.ykl.spring.version>
</properties>

    ${com.ykl.spring.version}
```

### 实际意义

![](image/2022-11-05-21-14-18.png)

* 梳理出一整套版本之间依赖的方案。与我们的火车头版本很想，会总结出一套可以相互兼容没有问题的中间件的合集。

### 继承内容

父POM中的大多数元素都能被子POM继承，这些元素包含：

```
groupId
version
description
url
inceptionYear
organization
licenses
developers
contributors
mailingLists
scm
issueManagement
ciManagement
properties
dependencyManagement
dependencies
repositories
pluginRepositories
build
plugin executions with matching ids
plugin configuration
etc.
reporting
profiles
```

## 4 聚合关系modules

### 聚合的含义

通过moudules标签聚合子项目。好处
1. 如果没有聚合标签，或者说聚合功能，则需要去每个模块下执行maven命令，并且按照依赖顺序从前到后执行。
1. 如果有聚合标签，可以一键执行maven命令。mvn 会按照模块之间的依赖关系依次执行命令。
2. 能够显示各个所有的模块。

```xml
  <modules>
    <module>project04-maven-moduele</module>
    <module>project05-maven-moduele</module>
    <module>project06-maven-moduele</module>
  </modules>
```
### 循环依赖

* 防止循环依赖，会出现报错

```xml
the ... dependencies has cyclic dependency

```
## 5 POM的层次

### 基本概念
Maven不仅仅用来做依赖管理和项目构建。还用来做**项目管理**。

POM有四个层次：超级POM、父POM、当前POM、生效POM

### 超级pom

默认继承了超级POM。超级POM

* moduleversion版本信息
* repository 仓库的地址
* pluginrepostory 插件仓库的地址
* builid 主要设置各个目录的位置。
* 插件管理
* profiles 配置文件

### 父POM
> 当前的POM的parent

### 当前POM

> 下层POM会继承上层POM。最近的有效配置是下层pom

### 有效POM
> 最终生效的POM文件，将所有的父POM叠加到一起

```
mvn help:effective-pom
```
## 6 POM 标签大全详解
```xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XM


using System;
using System.IO;
using System.Net;
using Xunit;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
using QRCoder;

namespace ImagePlayground.Tests;

/// <summary>
/// Tests for QRCode.
/// </summary>
public partial class ImagePlayground {
    [Fact]
    public void Test_QRCodeUrl() {

        string filePath = System.IO.Path.Combine(_directoryWithImages, "QRCodeUrl.jpg");
        File.Delete(filePath);
        Assert.True(File.Exists(filePath) == false);

        QrCode.Generate("https://evotec.xyz", filePath);

        Assert.True(File.Exists(filePath) == true);

        var read = QrCode.Read(filePath);
        Assert.True(read.Message == "https://evotec.xyz");
    }

    [Fact]
    public void Test_QRCode_CustomColors() {

        string filePath = System.IO.Path.Combine(_directoryWithImages, "QRCodeColors.png");
        File.Delete(filePath);
        QrCode.Generate("https://evotec.xyz", filePath, false, QRCodeGenerator.ECCLevel.Q, Color.Red, Color.Yellow, 10);

        Assert.True(File.Exists(filePath) == true);

        using SixLabors.ImageSharp.Image<Rgba32> img = SixLabors.ImageSharp.Image.Load<Rgba32>(filePath);
        Assert.Equal(Color.Yellow.ToPixel<Rgba32>(), img[0, 0]);

        var read = QrCode.Read(filePath);
        Assert.Equal("https://evotec.xyz", read.Message);
    }

    [Fact]
    public void Test_QRCodeWiFi() {
        string filePath = System.IO.Path.Combine(_directoryWithImages, "QRCodeWiFi.png");
        File.Delete(filePath);
        Assert.True(File.Exists(filePath) == false);

        QrCode.GenerateWiFi("Evotec", "superHardPassword123!", filePath, true);

        Assert.True(File.Exists(filePath) == true);

        var read = QrCode.Read(filePath);
        Assert.True(read.Message == "WIFI:T:WPA;S:Evotec;P:superHardPassword123!;;");
    }

    [Fact]
    public void Test_QRCode_Transparent() {
        string filePath = Path.Combine(_directoryWithImages, "QRCodeTransparent.png");
        File.Delete(filePath);
        QrCode.Generate("https://evotec.xyz", filePath, true);
        using SixLabors.ImageSharp.Image<SixLabors.ImageSharp.PixelFormats.Rgba32> img = SixLabors.ImageSharp.Image.Load<SixLabors.ImageSharp.PixelFormats.Rgba32>(filePath);
        Assert.Equal(0, img[0, 0].A);
    }

    [Fact]
    public void Test_BarCode() {
        string filePath = System.IO.Path.Combine(_directoryWithTests, "BarcodeEAN13.png");
        BarCode.Generate(BarcodeType.EAN, "9012341234571", filePath);

        var read1 = BarCode.Read(filePath);
        Assert.True(read1.Message == "9012341234571");
        Assert.True(File.Exists(filePath) == true);

        filePath = System.IO.Path.Combine(_directoryWithTests, "BarcodeEAN7.png");
        BarCode.Generate(BarcodeType.EAN, "963850


c,0x24,0x04]
          vpshrdvd  256(%rsp), %zmm3, %zmm1 {%k2}

// CHECK: vpshrdvd  268435456(%rcx,%r14,8), %zmm3, %zmm1 {%k2}
// CHECK: encoding: [0x62,0xb2,0x65,0x4a,0x73,0x8c,0xf1,0x00,0x00,0x00,0x10]
          vpshrdvd  268435456(%rcx,%r14,8), %zmm3, %zmm1 {%k2}

// CHECK: vpshrdvd  -536870912(%rcx,%r14,8), %zmm3, %zmm1 {%k2}
// CHECK: encoding: [0x62,0xb2,0x65,0x4a,0x73,0x8c,0xf1,0x00,0x00,0x00,0xe0]
          vpshrdvd  -536870912(%rcx,%r14,8), %zmm3, %zmm1 {%k2}

// CHECK: vpshrdvd  -536870910(%rcx,%r14,8), %zmm3, %zmm1 {%k2}
// CHECK: encoding: [0x62,0xb2,0x65,0x4a,0x73,0x8c,0xf1,0x02,0x00,0x00,0xe0]
          vpshrdvd  -536870910(%rcx,%r14,8), %zmm3, %zmm1 {%k2}

// CHECK: vpshrdvq  (%rcx), %zmm3, %zmm1 {%k2}
// CHECK: encoding: [0x62,0xf2,0xe5,0x4a,0x73,0x09]
          vpshrdvq  (%rcx), %zmm3, %zmm1 {%k2}

// CHECK: vpshrdvq  -256(%rsp), %zmm3, %zmm1 {%k2}
// CHECK: encoding: [0x62,0xf2,0xe5,0x4a,0x73,0x4c,0x24,0xfc]
          vpshrdvq  -256(%rsp), %zmm3, %zmm1 {%k2}

// CHECK: vpshrdvq  256(%rsp), %zmm3, %zmm1 {%k2}
// CHECK: encoding: [0x62,0xf2,0xe5,0x4a,0x73,0x4c,0x24,0x04]
          vpshrdvq  256(%rsp), %zmm3, %zmm1 {%k2}

// CHECK: vpshrdvq  268435456(%rcx,%r14,8), %zmm3, %zmm1 {%k2}
// CHECK: encoding: [0x62,0xb2,0xe5,0x4a,0x73,0x8c,0xf1,0x00,0x00,0x00,0x10]
          vpshrdvq  268435456(%rcx,%r14,8), %zmm3, %zmm1 {%k2}

// CHECK: vpshrdvq  -536870912(%rcx,%r14,8), %zmm3, %zmm1 {%k2}
// CHECK: encoding: [0x62,0xb2,0xe5,0x4a,0x73,0x8c,0xf1,0x00,0x00,0x00,0xe0]
          vpshrdvq  -536870912(%rcx,%r14,8), %zmm3, %zmm1 {%k2}

// CHECK: vpshrdvq  -536870910(%rcx,%r14,8), %zmm3, %zmm1 {%k2}
// CHECK: encoding: [


s":[{"refs":[{"id":"ref-for-dom-cssskewy-ay"}],"title":"4.4. CSSTransformValue objects"},{"refs":[{"id":"ref-for-dom-cssskewy-ay\u2460"}],"title":"5.7. <transform-list> and <transform-function> values"},{"refs":[{"id":"ref-for-dom-cssskewy-ay\u2461"}],"title":"6.5. CSSTransformValue and CSSTransformComponent Serialization"}],"url":"#dom-cssskewy-ay"},
"dom-cssskewy-cssskewy": {"dfnID":"dom-cssskewy-cssskewy","dfnText":"CSSSkewY(ay)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-cssskewy-cssskewy"}],"title":"4.4. CSSTransformValue objects"}],"url":"#dom-cssskewy-cssskewy"},
"dom-cssskewy-cssskewy-ay-ay": {"dfnID":"dom-cssskewy-cssskewy-ay-ay","dfnText":"ay","external":false,"refSections":[],"url":"#dom-cssskewy-cssskewy-ay-ay"},
"dom-cssstylerule-stylemap": {"dfnID":"dom-cssstylerule-stylemap","dfnText":"styleMap","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-cssstylerule-stylemap"}],"title":"3.2. Declared & Inline StylePropertyMap objects"}],"url":"#dom-cssstylerule-stylemap"},
"dom-cssstylevalue-associatedproperty-slot": {"dfnID":"dom-cssstylevalue-associatedproperty-slot","dfnText":"[[associatedProperty]]","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-cssstylevalue-associatedproperty-slot"}],"title":"2.1. Direct CSSStyleValue Objects"},{"refs":[{"id":"ref-for-dom-cssstylevalue-associatedproperty-slot\u2460"},{"id":"ref-for-dom-cssstylevalue-associatedproperty-slot\u2461"},{"id":"ref-for-dom-cssstylevalue-associatedproperty-slot\u2462"},{"id":"ref-for-dom-cssstylevalue-associatedproperty-slot\u2463"}],"title":"3. The StylePropertyMap"},{"refs":[{"id":"ref-for-dom-cssstylevalue-associatedproperty-slot\u2464"}],"title":"5.2. Unrepresentable Values"}],"url":"#dom-cssstylevalue-associatedproperty-slot"},
"dom-cssstylevalue-parse": {"dfnID":"dom-cssstylevalue-parse","dfnText":"parse(property, cssText)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-cssstylevalue-parse"}],"title":"2. CSSStyleValue objects"}],"url":"#dom-cssstylevalue-parse"},
"dom-cssstylevalue-parse-property-csstext-csstext": {"dfnID":"dom-cssstylevalue-parse-property-csstext-csstext","dfnText":"cssText","external":false,"refSections":[],"url":"#dom-cssstylevalue-parse-property-csstext-csstext"},
"dom-cssstylevalue-parse-property-csstext-property": {"dfnID":"dom-cssstylevalue-parse-property-csstext-property","dfnText":"property","external":false,"refSections":[],"url":"#dom-cssstylevalue-parse-property-csstext-property"},
"dom-cssstylevalue-parseall": {"dfnID":"dom-cssstylevalue-parseall","dfnText":"parseAll(property, cssText)","external":false,"refSections":[{"refs":[{"id":"


tack.split("\n")[0]).to.equal(`${errName}: ${msg}`)
            expect(err.stack.split("\n")[1].indexOf("throwError")).to.equal(7)
            // tslint:disable-next-line:no-unused-expression
            expect(err.hasMessage()).to.be.true
            expect(err.getMessage()).to.equal(dataMessage)
        }
    })
    it("a new instance should have the appropriate properties without message in data", () => {
        const errName = "BaseResourceError"
        const msg = `Resource with "${type}" ${action}. Data: {"id":"${id}"}`
        function throwError() {
            throw new BaseResourceError(action, type, {id})
        }
        try {
            throwError()
        } catch (err) {
            expect(err.name).to.equal(errName)
            expect(err instanceof BaseResourceError).to.equal(true)
            expect(err instanceof Error).to.equal(true)
            expect(err.stack).to.not.equal(null)
            expect(err.stack).to.not.equal(undefined)
            // tslint:disable-next-line:no-console
            // console.log("err: ", err.toString())
            expect(err.toString()).to.equal(`${errName}: ${msg}`)
            expect(err.data.id).to.equal(id)
            expect(err.message).to.equal(msg)
            expect(err.stack.split("\n")[0]).to.equal(`${errName}: ${msg}`)
            expect(err.stack.split("\n")[1].indexOf("throwError")).to.equal(7)
            // tslint:disable-next-line:no-unused-expression
            expect(err.hasMessage()).to.be.false
            // tslint:disable-next-line:no-unused-expression
            expect(err.getMessage()).to.be.undefined
        }
    })
})
// Used only as a polyfill for DOMMatrix
/* istanbul ignore file */
/* eslint @typescript-eslint/no-use-before-define: 0 */

const enum Matrix3D {
	M11 = 0,
	M12 = 1,
	M13 = 2,
	M14 = 3,
	M21 = 4,
	M22 = 5,
	M23 = 6,
	M24 = 7,
	M31 = 8,
	M32 = 9,
	M33 = 10,
	M34 = 11,
	M41 = 12,
	M42 = 13,
	M43 = 14,
	M44 = 15
}
const enum Matrix2D {
	A = Matrix3D.M11,
	B = Matrix3D.M12,
	C = Matrix3D.M21,
	D = Matrix3D.M22,
	E = Matrix3D.M41,
	F = Matrix3D.M42
}

const DEGREE_PER_RAD = 180 / Math.PI
const RAD_PER_DEGREE = Math.PI / 180

const parseMatrix = (init: any) => {
	let parsed = init.replace(/matrix\(/, "")
	parsed = parsed.split(/,/, 7)

	if (parsed.length !== 6) {
		throw new Error(`Failed to parse ${init}`)
	}

	parsed = parsed.map(parseFloat)

	return [parsed[0], parsed[1], 0, 0, parsed[2], parsed[3], 0, 0, 0, 0, 1, 0, parsed[4], parsed[5], 0, 1]
}

const parseMatrix3d = (init: any) => {
	let parsed = init.replace(/matrix3d\(/, "")
	parsed = parsed.split(/,/, 17)

	if (parsed.length !== 16) {
		throw new Error(`Failed to parse ${init}`)
	}

	return parsed.map(parseFloat)
}

const parseTransform = (tform: any) => {
	const type = tform.split(/\(/, 1)[0]

	if (type === "matrix") {
		return parseMatrix(tform)
	} else if (type === "matrix3d") {
		return parseMatrix3d(tform)
	} else {
		throw new Error(`${type} parsing not implemented`)
	}
}

const getNumber = (receiver: DOMMatrix | any, index: number)


._p4rt_mirror_session_wrapper.remove_app_db_entry(
            mirror_session_key)
        util.verify_response(
            self._response_consumer, mirror_session_key, [], "SWSS_RC_SUCCESS")

        # Query application database for mirror entries
        appl_mirror_entries = util.get_keys(
            self._p4rt_mirror_session_wrapper.appl_db,
            self._p4rt_mirror_session_wrapper.APP_DB_TBL_NAME + ":" + self._p4rt_mirror_session_wrapper.TBL_NAME)
        assert len(appl_mirror_entries) == len(original_appl_mirror_entries)

        # Query application database for the deleted mirror key
        (status, fvs) = util.get_key(self._p4rt_mirror_session_wrapper.appl_db,
                                     self._p4rt_mirror_session_wrapper.APP_DB_TBL_NAME,
                                     mirror_session_key)
        assert status == False

        # Query ASIC database for mirror entries
        asic_mirror_entries = util.get_keys(self._p4rt_mirror_session_wrapper.asic_db,
                                            self._p4rt_mirror_session_wrapper.ASIC_DB_TBL_NAME)
        assert len(asic_mirror_entries) == len(original_asic_mirror_entries)

        # Query ASIC state database for the deleted mirror key
        (status, fvs) = util.get_key(self._p4rt_mirror_session_wrapper.asic_db,
                                     self._p4rt_mirror_session_wrapper.ASIC_DB_TBL_NAME,
                                     asic_db_key)
        assert status == False


 self:UpdateOutputInputSize('torch.DoubleTensor')
end

function TestParameterValidation:testUpdateOutputInputSizeGPU()
   self:UpdateOutputInputSize('torch.CudaTensor')
end

-- Checkt that output tensor is properly sized.
--
function TestParameterValidation:UpdateOutputOutputSize(type)
   local layer = nn.VolumetricAveragePooling(3, 5, 7, 1, 1, 1):type(type)
   local input = torch.Tensor(1, 3, 7, 5):type(type);

   local output = layer:updateOutput(input)

   assertEquals(input:size(1), output:size(1),
                "Wrong number of output features.")
   assertEquals((input:size(2) - layer.kT) / layer.dT + 1, output:size(2),
      "Wrong number of output frames.")
   assertEquals((input:size(3) - layer.kH) / layer.dH + 1, output:size(3),
      "Wrong output height.")
   assertEquals((input:size(4) - layer.kW) / layer.dW + 1, output:size(4),
      "Wrong output width.")
end

function TestParameterValidation:UpdateOutputOutputSizeBatch(type)
   local layer = nn.VolumetricAveragePooling(3, 5, 7, 1, 1, 1):type(type)
   local input = torch.Tensor(4, 1, 3, 7, 5):type(type);

   local output = layer:updateOutput(input)

   assertEquals(input:size(1), output:size(1),
                "Wrong batch size.")
   assertEquals(input:size(2), output:size(2),
                "Wrong number of output features.")
   assertEquals((input:size(3) - layer.kT) / layer.dT + 1, output:size(3),
      "Wrong number of output frames.")
   assertEquals((input:size(4) - layer.kH) / layer.dH + 1, output:size(4),
      "Wrong output height.")
   assertEquals((input:size(5) - layer.kW) / layer.dW + 1, output:size(5),
      "Wrong output width.")
end

function TestParameterValidation:testUpdateOutputOutputSizeCPU()
   self:UpdateOutputOutputSize('torch.DoubleTensor')
end

function TestParameterValidation:testUpdateOutputOutputSizeGPU()
   self:UpdateOutputOutputSize('torch.CudaTensor')
end

function TestParameterValidation:testUpdateOutputOutputSizeBatchCPU()
   self:UpdateOutputOutputSizeBatch('torch.DoubleTensor')
end

function TestParameterValidation:testUpdateOutputOutputSizeBatchGPU()
   self:UpdateOutputOutputSizeBatch('torch.CudaTensor')
end

TestHandGilded = {}

function TestHandGilded:testUpdateOutput01()
   local layer = nn.VolumetricAveragePooling(2, 2, 2)
   local input = torch.Tensor(1, 2, 2, 2):fill(1.0)
   local output = layer:updateOutput(input)
   assertEquals(1, output[1][1][1][1], 'Incorrect output')
end

function TestHandGilded:testUpdateOutput02()
   local layer = nn.VolumetricAveragePooling(1, 1, 1)
   local input = torch.Tensor(1, 10, 11, 12):uniform(0.0, 1.0)
   local output = layer:updateOutput(input)
   assertTensorEq(input, output, 'Input must match output')
end

TestJacobian = {}

function TestJacobian:testUpdateGradInputJacobian01()
   local layer = nn.VolumetricAveragePooling(2, 2, 2)
   local input = torch.Tensor(1, 2, 2, 2):uniform(0.0, 1.0)
   local err = jac.testJacobian(layer, input)
   assertAlmostEquals(err, 0.0, 1e-7)
end

function TestJacobian:testUpdateGradInputJacobian02()
   local layer = nn.VolumetricAveragePooling(3, 5, 7)
   local input = torch.Tensor(16, 11, 13, 17):uniform(-1.0, 1.0)
   local err = jac.testJacobian(layer, input)
   assertAlmostEquals(err,


: 1.42857143;
  vertical-align: top;
  border-top: 1px solid #ddd;
  border-left: 1px solid #ddd;
}
.table > thead > tr > th {
  vertical-align: bottom;
  border-bottom: 2px solid #ddd;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
  border-top: 0;
}
.table > tbody + tbody {
  border-top: 2px solid #ddd;
}
.table .table {
  background-color: #fff;
}

.search-wrapper input::-webkit-input-placeholder {
  background-color: #eff0f6;
  font-size: 14px;
  line-height: 2.43;
  color: #d6d7e3;
  -webkit-transition: 0.3s all;
  transition: 0.3s all;
}

.search-wrapper input::-moz-placeholder {
  background-color: #eff0f6;
  font-size: 14px;
  line-height: 2.43;
  color: #d6d7e3;
  -moz-transition: 0.3s all;
  transition: 0.3s all;
}

.search-wrapper input:-ms-input-placeholder {
  background-color: #eff0f6;
  font-size: 14px;
  line-height: 2.43;
  color: #d6d7e3;
  -ms-transition: 0.3s all;
  transition: 0.3s all;
}

.search-wrapper input::-ms-input-placeholder {
  background-color: #eff0f6;
  font-size: 14px;
  line-height: 2.43;
  color: #d6d7e3;
  -ms-transition: 0.3s all;
  transition: 0.3s all;
}

.search-wrapper input::placeholder {
  background-color: #eff0f6;
  font-size: 14px;
  line-height: 2.43;
  color: #d6d7e3;
  -webkit-transition: 0.3s all;
  -o-transition: 0.3s all;
  transition: 0.3s all;
}

.lang-switcher {
  font-weight: 500;
  font-size: 16px;
  line-height: 1.1875;
  letter-spacing: 0.75px;
  color: #767676;
}

.lang-switcher-wrapper {
  position: relative;
}

.lang-menu {
  top: 40px;
  right: 0;
  width: 125px;
}

.lang-menu.active {
  opacity: 1;
  visibility: visible;
}

.sort-bar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  padding: 20px 36px 20px 20px;
  background-color: #FFFFFF;
  -webkit-box-shadow: 0px 1px 0px #DADBE4;
  box-shadow: 0px 1px 0px #DADBE4;
  border-radius: 10px 10px 0 0;
}

.sort-bar .search-wrapper {
  position


%hi(D_80075158)
/* 562F8 80065AF8 5851A58C */  lw         $a1, %lo(D_80075158)($a1)
/* 562FC 80065AFC 0C90010C */  jal        func_80064030
/* 56300 80065B00 00000000 */   nop
/* 56304 80065B04 E5960108 */  j          .L80065B94
/* 56308 80065B08 00000000 */   nop
.L80065B0C:
/* 5630C 80065B0C 0780043C */  lui        $a0, %hi(D_80075150)
/* 56310 80065B10 5051848C */  lw         $a0, %lo(D_80075150)($a0)
/* 56314 80065B14 0780053C */  lui        $a1, %hi(D_80075158)
/* 56318 80065B18 5851A58C */  lw         $a1, %lo(D_80075158)($a1)
/* 5631C 80065B1C 0490010C */  jal        func_80064010
/* 56320 80065B20 00000000 */   nop
/* 56324 80065B24 0780023C */  lui        $v0, %hi(D_80075158)
/* 56328 80065B28 5851428C */  lw         $v0, %lo(D_80075158)($v0)
/* 5632C 80065B2C 0780033C */  lui        $v1, %hi(D_80075150)
/* 56330 80065B30 5051638C */  lw         $v1, %lo(D_80075150)($v1)
/* 56334 80065B34 80100200 */  sll        $v0, $v0, 2
/* 56338 80065B38 21186200 */  addu       $v1, $v1, $v0
/* 5633C 80065B3C 0780013C */  lui        $at, %hi(D_80075150)
/* 56340 80065B40 505123AC */  sw         $v1, %lo(D_80075150)($at)
/* 56344 80065B44 0780023C */  lui        $v0, %hi(D_8007515C)
/* 56348 80065B48 5C51428C */  lw         $v0, %lo(D_8007515C)($v0)
/* 5634C 80065B4C 00000000 */  nop
/* 56350 80065B50 FFFF4224 */  addiu      $v0, $v0, -0x1
/* 56354 80065B54 0780013C */  lui        $at, %hi(D_8007515C)
/* 56358 80065B58 5C5122AC */  sw         $v0, %lo(D_8007515C)($at)
/* 5635C 80065B5C 0780023C */  lui        $v0, %hi(D_8007515C)
/* 56360 80065B60 5C51428C */  lw         $v0, %lo(D_8007515C)($v0)
/* 56364 80065B64 0780023C */  lui        $v0, %hi(D_80075168)
/* 56368 80065B68 6851428C */  lw         $v0, %lo(D_80075168)($v0)
/* 5636C 80065B6C 00000000 */  nop
/* 56370 80065B70 01004224 */  addiu      $v0, $v0, 0x1
/* 56374 80065B74 0780013C */  lui        $at, %hi(D_80075168)
/* 56378 80065B78 685122AC */  sw         $v0, %lo(D_80075168)($at)
/* 5637C 80065B7C 0780023C */  lui        $v0, %hi(D_80075168)
/* 56380 80065


         // Add to list of estimated contact positions
            estimated_contact_positions_.insert(pair<int,int> (it->id, startIndex));
        }
    }

    return;
}

void removeRowAndColumn(Eigen::MatrixXd& M, int index) {
    unsigned int dimX = M.cols();
    // cout << "Removing index: " << index<< endl;
    M.block(index,0,dimX-index-1,dimX) = M.bottomRows(dimX-index-1).eval();
    M.block(0,index,dimX,dimX-index-1) = M.rightCols(dimX-index-1).eval();
    M.conservativeResize(dimX-1,dimX-1);
}

} // end inekf namespace
// g2o - General Graph Optimization
// Copyright (C) 2011 R. Kuemmerle, G. Grisetti, W. Burgard
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright notice,
//   this list of conditions and the following disclaimer.
// * 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.
//
// 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
// HOLDER 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.

#include "timeutil.h"
#include <iostream>

#ifdef _WINDOWS
#include <time.h>
#include <windows.h>
#endif

#ifdef UNIX
#include <unistd.h>
#endif

namespace g2o {

#ifdef _WINDOWS
#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS)
  #define DELTA_EPOCH_IN_MICROSECS  11644473600000000Ui64
#else
  #define DELTA_EPOCH_IN_MICROSECS  11644473600000000ULL
#endif

struct timezone
{
  int  tz_minuteswest; /* minutes W of Greenwich */
  int  tz_dsttime;     /* type of dst correction */
};

int gettimeofday(struct timeval *tv, struct timezone *tz)
{
// Define a structure to receive the current Windows filetime
  FILETIME ft;

// Initialize the present time to 0 and the timezone to UTC
  unsigned __int64 tmpres = 0;
  static int tzflag = 0;

  if (NULL != tv)
  {
    GetSystemTimeAsFileTime(&ft);

// The GetSystemTimeAsFileTime returns the number of 100 nanosecond
// intervals since Jan 1, 1601 in a structure. Copy the high bits to
// the 64 bit tmpres, shift it left by 32 then or in the low 32 bits.
    tmpres |= ft.dwHighDateTime;
    tmpres <<= 32;
    tmpres |= ft.dwLowDateTime;

// Convert to microseconds by dividing by 10
    tmpres /= 10;

// The Unix epoch starts on Jan 1 1970.  Need to subtract the difference
// in seconds from Jan 1 1601.
    tmpres -= DELTA_EPOCH_IN_MICROSECS;

// Finally change microseconds to seconds and place in the seconds value.
// The modulus picks up the microseconds.


 l0)
	r0 = addMul64(r0, l1_38, l4)
	r0 = addMul64(r0, l2_38, l3)

	// r1 = l0×l1 + l1×l0 + 19×(l2×l4 + l3×l3 + l4×l2) = 2×l0×l1 + 19×2×l2×l4 + 19×l3×l3
	r1 := mul64(l0_2, l1)
	r1 = addMul64(r1, l2_38, l4)
	r1 = addMul64(r1, l3_19, l3)

	// r2 = l0×l2 + l1×l1 + l2×l0 + 19×(l3×l4 + l4×l3) = 2×l0×l2 + l1×l1 + 19×2×l3×l4
	r2 := mul64(l0_2, l2)
	r2 = addMul64(r2, l1, l1)
	r2 = addMul64(r2, l3_38, l4)

	// r3 = l0×l3 + l1×l2 + l2×l1 + l3×l0 + 19×l4×l4 = 2×l0×l3 + 2×l1×l2 + 19×l4×l4
	r3 := mul64(l0_2, l3)
	r3 = addMul64(r3, l1_2, l2)
	r3 = addMul64(r3, l4_19, l4)

	// r4 = l0×l4 + l1×l3 + l2×l2 + l3×l1 + l4×l0 = 2×l0×l4 + 2×l1×l3 + l2×l2
	r4 := mul64(l0_2, l4)
	r4 = addMul64(r4, l1_2, l3)
	r4 = addMul64(r4, l2, l2)

	c0 := shiftRightBy51(r0)
	c1 := shiftRightBy51(r1)
	c2 := shiftRightBy51(r2)
	c3 := shiftRightBy51(r3)
	c4 := shiftRightBy51(r4)

	rr0 := r0.lo&maskLow51Bits + c4*19
	rr1 := r1.lo&maskLow51Bits + c0
	rr2 := r2.lo&maskLow51Bits + c1
	rr3 := r3.lo&maskLow51Bits + c2
	rr4 := r4.lo&maskLow51Bits + c3

	*v = Element{rr0, rr1, rr2, rr3, rr4}
	v.carryPropagate()
}

// carryPropagateGeneric brings the limbs below 52 bits by applying the reduction
// identity (a * 2²⁵⁵ + b = a * 19 + b) to the l4 carry.
func (v *Element) carryPropagateGeneric() *Element {
	c0 := v.l0 >> 51
	c1 := v.l1 >> 51
	c2 := v.l2 >> 51
	c3 := v.l3 >> 51
	c4 := v.l4 >> 51

	// c4 is at most 64 - 51 = 13 bits, so c4*19 is at most 18 bits, and
	// the final l0 will be at most 52 bits. Similarly for the rest.
	v.l0 = v.l0&maskLow51Bits + c4*19
	v.l1 = v.l1&maskLow51Bits + c0
	v.l2 = v.l2&maskLow51Bits + c1
	v.l3 = v.l3&maskLow51Bits + c2
	v.l4 = v.l4&maskLow51Bits + c3

	return v
}
// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package fsnotify

import (
	"io/ioutil"
	"os"
	"os/exec"
	"path/filepath"
	"runtime"
	"sync/atomic"
	"testing"
	"time"
)

// An atomic counter
type counter struct {
	val int32
}

func (c *counter) increment() {
	atomic.AddInt32(&c.val, 1)
}

func (c *counter) value() int32 {
	return atomic.LoadInt32(&c.val)
}

func (c *counter) reset() {
	atomic.StoreInt32(&c.val, 0)
}

// tempMkdir makes a temporary directory
func tempMkdir(t *testing.T) string {
	dir, er


02fNTxX78DF5j9cWuc07xLrP9\u002f+TT3ZCus\u002fY8dNlBmP7j9mYseBMovuP6cxFau7n+4\u002f7t70ViKq7j+D1F9fHFzuP+wRtgqiSO4\u002f8phPsK1+7j9WN3aZPnzuPxhoChAmj+4\u002fagPbIG2c7j8="},"type":"scatter"},{"legendgroup":"('deepseek_qwen_32b', 'math_operations_6k', 'base', 'main', 'prompt_only', 'deepseek_qwen_32b', 'math_operations_6k', 'base', 'main', 'prompt_only')","marker":{"color":"#d62728","opacity":0.5,"size":6},"mode":"markers","name":"('deepseek_qwen_32b', 'math_operations_6k', 'base', 'main', 'prompt_only', 'deepseek_qwen_32b', 'math_operations_6k', 'base', 'main', 'prompt_only') Fold ('direction__center_from_origin_False__classifier_cut_zero__test_accuracy_score', 0)","showlegend":false,"x":{"dtype":"i1","bdata":"AAQIDBAUGBwgJCgsMDQ4PA=="},"y":{"dtype":"f8","bdata":"JFtEc9ag6D8X0Zw1KJ7mP6F42uMqIOg\u002fskU0Zw2K5z84qr\u002fP26TrPziqv8\u002fbpOs\u002fdljCUf197j9M+Tos4ajuP47q7\u002fM26e4\u002fjurv8zbp7j9M+Tos4ajuP5+3SXcZU+4\u002f4aj+Pm+T7j8jmrMGxdPuP\u002fk6LOGo\u002fu4\u002fZYtozhoU7z8="},"type":"scatter"},{"legendgroup":"('deepseek_qwen_32b', 'math_operations_6k', 'base', 'main', 'prompt_only', 'deepseek_qwen_32b', 'math_operations_6k', 'base', 'main', 'prompt_only')","marker":{"color":"#d62728","opacity":0.5,"size":6},"mode":"markers","name":"('deepseek_qwen_32b', 'math_operations_6k', 'base', 'main', 'prompt_only', 'deepseek_qwen_32b', 'math_operations_6k', 'base', 'main', 'prompt_only') Fold ('direction__center_from_origin_False__classifier_cut_zero__test_accuracy_score', 1)","showlegend":false,"x":{"dtype":"i1","bdata":"AAQIDBAUGBwgJCgsMDQ4PA=="},"y":{"dtype":"f8","bdata":"tjdWf6BH6j8IeqSEnAroP1g+EbO5dOg\u002fhxrszmS06D\u002fkVMAv3NrrP\u002fRICTkV8Os\u002fEbO5dKjB7j\u002fxyidiNpfuPxGzuXSowe4\u002fEbO5dKjB7j\u002fC7kxGi1fuP7L6Az1SQu4\u002f4dbeWP2B7j\u002fxyidiNpfuPxGzuXSowe4\u002fEbO5dKjB7j8="},"type":"scatter"},{"legendgroup":"('deepseek_qwen_32b', 'math_operations_6k', 'base', 'main', 'prompt_only', 'deepseek_qwen_32b', 'math_operations_6k', 'base', 'main', 'prompt_only')","marker":{"color":"#d62728","opacity":0.5,"size":6},"mode":"


/* SPDX-License-Identifier: GPL-2.0-or-later */

#include <stddef.h>
#include <string.h>
#include <console/console.h>

/* FIXME(dhendrix): prototypes added for assembler */
int raise(int signum) __attribute__((used));
int raise(int signum)
{
	printk(BIOS_CRIT, "%s: Signal # %d caught\n", __func__, signum);
	return 0;
}

/* Dummy function to avoid linker complaints */
void __aeabi_unwind_cpp_pr0(void) __attribute__((used));
void __aeabi_unwind_cpp_pr0(void)
{
}

void __aeabi_unwind_cpp_pr1(void) __attribute__((used));
void __aeabi_unwind_cpp_pr1(void)
{
}

/* Support the alias for the __aeabi_memcpy which may
   assume memory alignment.  */
void __aeabi_memcpy4(void *dest, const void *src, size_t n)
	__attribute((alias("__aeabi_memcpy")));

void __aeabi_memcpy8(void *dest, const void *src, size_t n)
	__attribute((alias("__aeabi_memcpy")));

void __aeabi_memcpy(void *dest, const void *src, size_t n);
void __aeabi_memcpy(void *dest, const void *src, size_t n)
{
	(void)memcpy(dest, src, n);
}

void __aeabi_memset(void *dest, size_t n, int c);
void __aeabi_memset(void *dest, size_t n, int c)
{
	(void)memset(dest, c, n);
}

/* Support the alias for the __aeabi_memclr which may
   assume memory alignment.  */
void __aeabi_memclr4(void *dest, size_t n)
	__attribute((alias("__aeabi_memclr")));

void __aeabi_memclr8(void *dest, size_t n)
	__attribute((alias("__aeabi_memclr")));

/* Support the routine __aeabi_memclr.  */
void __aeabi_memclr(void *dest, size_t n);
void __aeabi_memclr(void *dest, size_t n)
{
	__aeabi_memset(dest, n, 0);
}


parent.setProperty(LayeredOptions.CONSIDER_MODEL_ORDER_PORT_MODEL_ORDER, false);
        // No crossing minimization, hence only model order is used.
        parent.setProperty(LayeredOptions.CROSSING_MINIMIZATION_STRATEGY, CrossingMinimizationStrategy.NONE);
        parent.setProperty(LayeredOptions.CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE, GreedySwitchType.OFF);
        // For presentation.
        parent.setProperty(CoreOptions.DIRECTION, Direction.RIGHT);
        parent.setProperty(CoreOptions.PADDING, new ElkPadding(0.0));
        parent.setProperty(CoreOptions.SPACING_NODE_NODE, 10.0);
        parent.setProperty(LayeredOptions.SPACING_NODE_NODE_BETWEEN_LAYERS, 20.0);
        n1.setProperty(LayeredOptions.PORT_CONSTRAINTS, PortConstraints.FIXED_SIDE);
        ni.setProperty(LayeredOptions.PORT_CONSTRAINTS, PortConstraints.FIXED_SIDE);
        n2.setProperty(LayeredOptions.PORT_CONSTRAINTS, PortConstraints.FIXED_SIDE);
        // Make sure that the order is correct.
        parent.setProperty(LayeredOptions.CYCLE_BREAKING_STRATEGY, CycleBreakingStrategy.MODEL_ORDER);

        ElkPort p1 = ElkGraphUtil.createPort(n1);
        p1.setProperty(LayeredOptions.PORT_SIDE, PortSide.EAST);
        ElkPort p2 = ElkGraphUtil.createPort(ni);
        p2.setProperty(LayeredOptions.PORT_SIDE, PortSide.EAST);
        ElkPort p3 = ElkGraphUtil.createPort(n2);
        p3.setProperty(LayeredOptions.PORT_SIDE, PortSide.SOUTH);
        ElkPort p4 = ElkGraphUtil.createPort(n2);
        p4.setProperty(LayeredOptions.PORT_SIDE, PortSide.SOUTH);

        ElkGraphUtil.createSimpleEdge(p1, p4);
        ElkGraphUtil.createSimpleEdge(p2, p3);

        LayeredLayoutProvider layoutProvider = new LayeredLayoutProvider();
        layoutProvider.layout(parent, new BasicProgressMonitor());
        // Assert the ordering of n1 and ni.
        assertTrue("Node order of n1 and ni", n1.getY() < ni.getY());
        // Assert the ordering of p3 and p4.
        assertTrue("p4 before p3", p4.getX() < p3.getX());

        // Check for port model order, which should result in the same graph.

        parent.setProperty(LayeredOptions.CONSIDER_MODEL_ORDER_PORT_MODEL_ORDER, true);

        layoutProvider.layout(parent, new BasicProgressMonitor());
        // Assert the ordering of n1 and ni.
        assertTrue("Node order of n1 and ni", n1.getY() < ni.getY());
        // Assert the ordering of p3 and p4.
        assertTrue("p4 before p3", p4.getX() < p3.getX());
    }

    @Test
    public void testOutgoingEastIncomingEast() {
        //        p3<----
        //      n2      |
        //        p4<-  |
        //           |  |
        //           |  |
        //   p1------   |
        // n1           |
        //   p2<--------

        ElkNode parent = ElkGraphUtil.createGraph();
        ElkNode n1 = ElkGraphUtil.createNode(parent);
        ElkNode n2 = ElkGraphUtil.createNode(parent);
        n1.setDimensions(20, 20);
        n2.setDimensions(20, 20);

        parent.setProperty(CoreOptions.ALGORITHM, LayeredOptions.ALGORITHM_ID);
        // Model order configuration.
        pare


.ietf.org/doc/html/rfc6184#section-17.1">17.1.  Normative References

   [1]   ITU-T Recommendation H.264, "Advanced video coding for generic
         audiovisual services", March 2010.

   [2]   ISO/IEC International Standard 14496-10:2008.

   [3]   ITU-T Recommendation H.241, "Extended video procedures and
         control signals for H.300-series terminals", May 2006.

   [4]   Bradner, S., "Key words for use in RFCs to Indicate Requirement
         Levels", BCP 14, RFC 2119, March 1997.

   [5]   Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson,
         "RTP: A Transport Protocol for Real-Time Applications", STD 64,
         RFC 3550, July 2003.

   [6]   Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
         Description Protocol", RFC 4566, July 2006.

   [7]   Josefsson, S., "The Base16, Base32, and Base64 Data Encodings",
         RFC 4648, October 2006.

Wang, et al.                 Standards Track                   [Page 98]

RFC 6184           RTP Payload Format for H.264 Video           May 2011

   [8]   Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with
         Session Description Protocol (SDP)", RFC 3264, June 2002.

   [9]   Lennox, J., Ott, J., and T. Schierl, "Source-Specific Media
         Attributes in the Session Description Protocol (SDP)", RFC
         5576, June 2009.

17.2.  Informative References

   [10]  Luthra, A., Sullivan, G.J., and T. Wiegand (eds.),
         "Introduction to the special issue on the H.264/AVC video
         coding standard", IEEE Transactions on Circuits and Systems for
         Video Technology, Vol. 13, No. 7, July 2003.

   [11]  Ott, J., Bormann, C., Sullivan, G., Wenger, S., and R. Even,
         Ed., "RTP Payload Format for ITU-T Rec. H.263 Video", <a href="https://datatracker.ietf


der-top-width: 1px;
}
.react-flow__resize-control.line.bottom {
  border-bottom-width: 1px;
  top: 100%;
}
.lineage-component {
  --primary-color: #247efe;
  --bg-color: #f5f5f7;
  --primary-accent: #247efe;
  --column-node-bg: #e9f2ff;
  --column-node-color: var(--primary-accent);
  --text-color: #000000;
  --card-bg: #ffffff;
  --card-border-color: #e7e8ea;
  --table-node-border-color: rgba(167, 178, 193, 0.3);
  --table-node-expand-bg: #eaf3ff;
  --table-node-collapse-bg: #ffffff;
  --table-node-content-bg: #ffffff;
  --text-grey-color: #8390a3;
  --text-grey2-color: #c4cad2;
  --purpose-section-bg: #eaf3ff;
  --column-section-bg: #f5f6f7;
  --tag-bg: #f5f6f7;
  --tag-text-color: #082247;
  --input-placeholder-color: rgba(8, 34, 71, 0.5);
  --input-bg: #ffffff;
  --input-text-color: #212529;
  --input-border-color: #dee2e6;
  --modal-bg: #ffffff;
  --popover-bg: #ffffff;
  --divider-color: #e8e8e8;
  --code-bg: #082247;
  --node-model-color: 36, 126, 254;
  line-height: var(--bs-body-line-height);
  height: 100%;
}
.vscode-dark .lineage-component {
  --bg-color: #1e1e1e;
  --primary-accent: #247efe;
  --column-node-bg: rgba(131, 144, 163, 0.2);
  --column-node-color: #ffffff;
  --text-color: #ffffff;
  --card-bg: #252526;
  --card-border-color: #d5dbe433;
  --table-node-border-color: rgba(213, 219, 228, 0.1);
  --table-node-expand-bg: #494e56;
  --table-node-collapse-bg: #3a3d41;
  --table-node-content-bg: #3a3d41;
  --text-grey-color: #66768d;
  --text-grey2-color: #c4cad2;
  --purpose-section-bg: #3c3c3c;
  --column-section-bg: #3c3c3c;
  --tag-bg: #4a4d51;
  --tag-text-color: #ffffff;
  --input-placeholder-color: #ffffff;
  --input-bg: rgba(131, 144, 163, 0.2);
  --input-text-color: #ffffff;
  --input-border-color: rgba(131, 144, 163, 0.1);
  --modal-bg: #484e55;
  --popover-bg: #28292c;
  --divider-color: #424750;
  --code-bg: #171717;
  --node-model-color: 202, 232, 249;
}
body.lineage .popover {
  --bs-popover-bg: var(--background--02);
}
body.vscode-dark .bs-modal {
  --bs-modal-bg: #252526 !important;
  --bs-modal-color: #ffffff !important;
}
.position-relative {
  position: relative;
}
.gap-xxs {
  gap: 0.25rem;
}
.gap-xs {
  gap: 0.5rem;
}
.gap-sm {
  gap: 0.75rem;
}
.gap-md {
  gap: 1rem;
}
.gap-lg {
  gap: 1.25rem;
}
.gap-xl {
  gap: 2rem;
}
.overflow-y {
  overflow-y: auto;
}
.overflow-x {
  overflow