diff --git a/.codespellrc b/.codespellrc index f14154708..de14c377b 100644 --- a/.codespellrc +++ b/.codespellrc @@ -1,3 +1,3 @@ [codespell] -ignore-words-list: crate,everytime,inout,co-ordinate,ot,nwo,absolutey,atleast,ue,afterall -skip: **/target,node_modules,build,**/Cargo.lock,./docs/kcl/*.md,.yarn.lock,**/yarn.lock,./openapi/*.json,./src/lib/machine-api.d.ts +ignore-words-list: crate,everytime,inout,co-ordinate,ot,nwo,atleast,ue,afterall +skip: **/target,node_modules,build,dist,./out,**/Cargo.lock,./docs/kcl/*.md,.yarn.lock,**/yarn.lock,./openapi/*.json,./packages/codemirror-lang-kcl/test/all.test.ts,tsconfig.tsbuildinfo diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 011e014b2..81f655172 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,24 +5,28 @@ version: 2 updates: - - package-ecosystem: 'npm' # See documentation for possible values - directory: '/' # Location of package manifests - schedule: - interval: 'weekly' - reviewers: - - franknoirot - - irev-dev - - package-ecosystem: 'github-actions' # See documentation for possible values - directory: '/' # Location of package manifests - schedule: - interval: 'weekly' - reviewers: - - adamchalmers - - jessfraz - - package-ecosystem: 'cargo' # See documentation for possible values - directory: '/src/wasm-lib/' # Location of package manifests - schedule: - interval: 'weekly' - reviewers: - - adamchalmers - - jessfraz + - package-ecosystem: 'npm' # See documentation for possible values + directory: '/' # Location of package manifests + schedule: + interval: 'weekly' + reviewers: + - franknoirot + - irev-dev + - package-ecosystem: 'github-actions' # See documentation for possible values + directory: '/' # Location of package manifests + schedule: + interval: 'weekly' + reviewers: + - adamchalmers + - jessfraz + - package-ecosystem: 'cargo' # See documentation for possible values + directory: '/src/wasm-lib/' # Location of package manifests + schedule: + interval: 'weekly' + reviewers: + - adamchalmers + - jessfraz + groups: + serde-dependencies: + patterns: + - "serde*" diff --git a/.github/workflows/build-apps.yml b/.github/workflows/build-apps.yml index c0a65f796..c4ab61d2a 100644 --- a/.github/workflows/build-apps.yml +++ b/.github/workflows/build-apps.yml @@ -173,7 +173,13 @@ jobs: CSC_KEY_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} CSC_KEYCHAIN: ${{ secrets.APPLE_SIGNING_IDENTITY }} WINDOWS_CERTIFICATE_THUMBPRINT: ${{ secrets.WINDOWS_CERTIFICATE_THUMBPRINT }} - run: yarn electron-builder --config --publish always + DEBUG: "electron-notarize*" + # TODO: Fix electron-notarize flakes. The logs above should help gather more data on failures + uses: nick-fields/retry@v3.0.0 + with: + timeout_minutes: 10 + max_attempts: 3 + command: yarn electron-builder --config --publish always - name: List artifacts in out/ run: ls -R out @@ -228,7 +234,13 @@ jobs: CSC_KEY_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} CSC_KEYCHAIN: ${{ secrets.APPLE_SIGNING_IDENTITY }} WINDOWS_CERTIFICATE_THUMBPRINT: ${{ secrets.WINDOWS_CERTIFICATE_THUMBPRINT }} - run: yarn electron-builder --config --publish always + DEBUG: "electron-notarize*" + # TODO: Fix electron-notarize flakes. The logs above should help gather more data on failures + uses: nick-fields/retry@v3.0.0 + with: + timeout_minutes: 10 + max_attempts: 3 + command: yarn electron-builder --config --publish always - uses: actions/upload-artifact@v4 if: ${{ env.IS_RELEASE == 'true' }} diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 37af24299..458ead581 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -18,7 +18,6 @@ permissions: jobs: check-rust-changes: - if: github.event.pull_request.draft == false runs-on: ubuntu-latest outputs: rust-changed: ${{ steps.filter.outputs.rust }} @@ -35,7 +34,6 @@ jobs: - 'src/wasm-lib/**' electron: - if: github.event.pull_request.draft == false timeout-minutes: 60 name: playwright:electron:${{ matrix.os }} ${{ matrix.shardIndex }} ${{ matrix.shardTotal }} strategy: @@ -129,9 +127,12 @@ jobs: shell: bash run: yarn tron:package - name: Run ubuntu/chrome snapshots + if: ${{ matrix.os == 'namespace-profile-ubuntu-8-cores' && matrix.shardIndex == 1 }} shell: bash + # TODO: break this in its own job, for now it's not slowing down the overall execution as ubuntu is the quickest, + # but we could do better. This forces a large 1/1 shard of all 20 snapshot tests that runs in about 3 minutes. run: | - PLATFORM=web yarn playwright test --config=playwright.config.ts --retries="3" --update-snapshots --grep=@snapshot --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }} + PLATFORM=web yarn playwright test --config=playwright.config.ts --retries="3" --update-snapshots --grep=@snapshot --shard=1/1 env: CI: true NODE_ENV: development @@ -152,6 +153,7 @@ jobs: continue-on-error: true run: rm -r test-results - name: check for changes + if: ${{ matrix.os == 'namespace-profile-ubuntu-8-cores' && matrix.shardIndex == 1 }} shell: bash id: git-check run: | diff --git a/README.md b/README.md index 7adcfd6a1..66ec43de4 100644 --- a/README.md +++ b/README.md @@ -337,13 +337,47 @@ For individual testing: yarn test abstractSyntaxTree -t "unexpected closed curly brace" --silent=false ``` -Which will run our suite of [Vitest unit](https://vitest.dev/) and [React Testing Library E2E](https://testing-library.com/docs/react-testing-library/intro/) tests, in interactive mode by default. +Which will run our suite of [Vitest unit](https://vitest.dev/) and [React Testing Library E2E](https://testing-library.com/docs/react-testing-library/intro) tests, in interactive mode by default. ### Rust tests -```bash +**Dependencies** + +- `KITTYCAD_API_TOKEN` +- `cargo-nextest` +- `just` + +#### Setting KITTYCAD_API_TOKEN +Use the production zoo.dev token, set this environment variable before running the tests + +#### Installing cargonextest + +``` cd src/wasm-lib -KITTYCAD_API_TOKEN=XXX cargo test -- --test-threads=1 +cargo search cargo-nextest +cargo install cargo-nextest +``` + +#### just +install [`just`](https://github.com/casey/just?tab=readme-ov-file#pre-built-binaries) + +#### Running the tests + +```bash +# With just +# Make sure KITTYCAD_API_TOKEN= is set +# Make sure you installed cargo-nextest +# Make sure you installed just +cd src/wasm-lib +just test +``` + +```bash +# Without just +# Make sure KITTYCAD_API_TOKEN= is set +# Make sure you installed cargo-nextest +cd src/wasm-lib +export RUST_BRACKTRACE="full" && cargo nextest run --workspace --test-threads=1 ``` Where `XXX` is an API token from the production engine (NOT the dev environment). diff --git a/docs/kcl/KNOWN-ISSUES.md b/docs/kcl/KNOWN-ISSUES.md index bfb702307..7f3dfd699 100644 --- a/docs/kcl/KNOWN-ISSUES.md +++ b/docs/kcl/KNOWN-ISSUES.md @@ -24,3 +24,5 @@ once fixed in engine will just start working here with no language changes. chamfer cases work currently. - **Appearance**: Changing the appearance on a loft does not work. + +- **Helix**: Currently sweeping a helix does not work. diff --git a/docs/kcl/circleThreePoint.md b/docs/kcl/circleThreePoint.md new file mode 100644 index 000000000..ee573a9c0 --- /dev/null +++ b/docs/kcl/circleThreePoint.md @@ -0,0 +1,42 @@ +--- +title: "circleThreePoint" +excerpt: "Construct a circle derived from 3 points." +layout: manual +--- + +Construct a circle derived from 3 points. + + + +```js +circleThreePoint(p1: [number], p2: [number], p3: [number], sketch_surface_or_group: SketchOrSurface, tag?: TagDeclarator) -> Sketch +``` + + +### Arguments + +| Name | Type | Description | Required | +|----------|------|-------------|----------| +| `p1` | `[number]` | 1st point to derive the circle. | Yes | +| `p2` | `[number]` | 2nd point to derive the circle. | Yes | +| `p3` | `[number]` | 3rd point to derive the circle. | Yes | +| `sketch_surface_or_group` | [`SketchOrSurface`](/docs/kcl/types/SketchOrSurface) | Plane or surface to sketch on. | Yes | +| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Identifier for the circle to reference elsewhere. | No | + +### Returns + +[`Sketch`](/docs/kcl/types/Sketch) - A sketch is a collection of paths. + + +### Examples + +```js +exampleSketch = startSketchOn("XY") + |> circleThreePoint(p1 = [10, 10], p2 = [20, 8], p3 = [15, 5]) + +example = extrude(5, exampleSketch) +``` + +![Rendered example of circleThreePoint 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAD45ElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq/7LXHPNNQ/mmc6cOfNggGuuuebBAGfOnHkQD3DNNdc8GOCaa655MM/lzJkzD+YBrrnmmgfzH+y+++67lefj7Nmzt/IA9913360803333XcrwNmzZ5/BM91333238kxnz569FeC+++67lauuuuqqq6666qqr/iugBz3oQVx11VVXXXXVVVdd9a9zzTXXPBjgzJkzDwa45pprHnzmzJkHAVxzzTUPvuaaax7MM505c+bB11xzzYO56jncd999t/JMZ8+evfW+++67lWe67777bj179uwz7rvvvlsBzp49e+t99913K1ddddVVV1111VVX/WuhBz3oQVx11VVXXXXVVVdddcU111zzYIAzZ848+JprrnnwmTNnHgTw4i/+4q8NcObMmQdfc801D+bf6MKFC9zvwoULAFy4cAGACxcu8EAXL14E4MKFCzy3Cxcu8EAXLlzgP9rJkyd5fk6ePMn9Tp48yQOdOHECgJMnT3K/kydPcr+TJ09y8uRJ/q3uu+++WwHOnj17K8B9991363333Xfr2bNnn3HffffdCnD27Nlb77vvvlu56qqrrrrqqquuugoAPehBD+Kqq6666qqrrrrq/4NrrrnmwQBnzpx58Iu92Iu9FsA111zz4GuuuebBZ86cefA111zzYP4VLly4wIULFwC4cOECFy5cAODixYsAXLhwAYALFy5w4cIFrnpOJ0+e5H4nT57k5MmT3O9hD3sYACdPngTg5MmTnDx5khfVfffddyvA2bNnb73vvvtuBfiHf/iH37nvvvtuBfiHf/iH3+aqq6666qqrrrrq/wf0oAc9iKuuuuqqq6666qr/K6655poHnzlz5sHXXHPNg8+cOfOga6655sHXXHPNg1/sxV7stXkRXLhwAYALFy5w8eJFLly4AMBTnvIUAC5evMiFCxf4j2abq/5lJ0+eBODkyZOcPHkSgBMnTnDy5ElOnjwJwMMf/nBeFPfdd9+tZ8+evfW+++67FeAf/uEffue+++679ezZs7fed999t3LVVVddddVVV131fwN60IMexFVXXXXVVVddddX/Jtdcc82DAV7sxV7stc+cOfOga6655sHXXHPNg1/sxV7stfkXXLhwgQsXLnDx4kUuXLjAhQsXuHDhAhcvXuTChQv8f2Cb/+tOnjwJwMmTJzl58iQAD3vYwzh58iQAD3/4w3lh7rvvvlsB/uEf/uG377vvvlvPnj37jPvuu+/Wf/iHf/htrrrqqquuuuqqq/53QQ960IO46qqrrrrqqquu+p/ommuuefCZM2ce/GIv9mKvBfDiL/7ir/1iL/Zir80LceHCBQCe+tSncuHCBS5cuMCFCxd46lOfylX/+Wzzv8XJkyc5efIkJ0+eBOBhD3sYJ0+e5OEPfzgvzH333Xfr2bNnb73vvvtu/Yd/+Iffue+++279h3/4h9/mqquuuuqqq6666n8m9KAHPYirrrrqqquuuuqq/27XXHPNg1/sxV7stc+cOfOgF3/xF3/tF3uxF3vt++6779ZrrrnmwTyXCxcuAPDUpz6VCxcucOHCBS5cuMBTn/pUrvq/xTb/HU6ePAnAwx/+cAAe9rCHcfLkSR7+8Ifzgtx33323nj179tb77rvv1n/4h3/4nfvuu+/Wf/iHf/htrrrqqquuuuqqq/57oQc96EFcddVVV1111VVX/Ve65pprHvzar/3a7wXw4i/+4q/9Yi/2Yq/N83HhwgUAnvrUp3LhwgWe8pSn8NSnPpWrrvrXss1/lJMnT3Ly5ElOnjzJwx72ME6ePMnDH/5wnp/77rvvVoB/+Id/+O1/+Id/+J377rvv1n/4h3/4ba666qqrrrrqqqv+66AHPehBXHXVVVddddVVV/1nueaaax782q/92u8F8OIv/uKv/WIv9mKvzfNx4cIFnvrUp3LhwgWe+tSn8tSnPpUXlW2uuuo/m21emJMnT/Lwhz8cgIc97GGcPHmShz/84Ty3++6771aAf/iHf/jtf/iHf/id++6779Z/+Id/+G2uuuqqq6666qqr/nOgBz3oQVx11VVXXXXVVVf9R7jmmmsefObMmQe/2Iu92Gu9+Iu/+Gu/2Iu92GvzfFy4cIGnPvWpXLhwgac+9ak89alP5f8y21z1/9PJkyc5ceIEJ0+e5GEPexgnT57k4Q9/OM/tvvvuu/Xs2bO33nfffbf+wz/8w+/81m/91ndz1VVXXXXVVVdd9R8DPehBD+Kqq6666qqrrrrq3+Kaa6558Gu/9mu/F8DrvM7rvPc111zzYJ7LhQsXeOpTn8qFCxd46lOfylOf+lSu+s9nm6v+Zzp58iQnTpzg5MmTPPzhD+fEiRM8/OEP57ndd999t/7DP/zDb//DP/zD79x33323/sM//MNvc9VVV1111VVXXfWvhx70oAdx1VVXXXXVVVdd9aK45pprHvzar/3a7wXwTu/0Tp/Nc7lw4QIAf/Znf8ZTn/pUnvrUp3LV/022ueo/zsmTJzlx4gQPf/jDedjDHsbDH/5wntt999136z/8wz/89j/8wz/8zn333XfrP/zDP/w2V1111VVXXXXVVf8y9KAHPYirrrrqqquuuuqq5+eaa6558Gu/9mu/F8A7vdM7fTbP5cKFC1y8eJGnPOUpPPWpT+WpT30qV131b2Wbq644efIkAA972MN4+MMfziu8wivw3O67775b/+Ef/uG3/+Ef/uF3fuu3fuu7ueqqq6666qqrrnr+0IMe9CCuuuqqq6666qqr7vdiL/Zir/1iL/Zir/U6r/M6733NNdc8mAe4cOECT33qU7lw4QJ//ud/zoULF7jqqv+JbPN/zcmTJ3nYwx7Gwx/+cF7hFV6B53bffffd+lu/9Vvf/Q//8A+/8w//8A+/zVVXXXXVVVddddUV6EEPehBXXXXVVVddddX/X9dcc82DX/u1X/u9XvzFX/y1X+zFXuy1eYALFy5w8eJFnvrUp/Jnf/ZnXLx4kX8P21x11f8Wtvmf7OTJkzzsYQ/j4Q9/OK/wCq/AA9133323nj179tbf+q3f+p777rvv1n/4h3/4ba666qqrrrrqqv+v0IMe9CCuuuqqq6666qr/X6655poHv/Zrv/Z7vc7rvM57X3PNNQ/mAS5cuMCf//mf89SnPpWnPvWpXPWC2eaqq14Q2/xXOXnyJCdOnODhD384D3vYw3j4wx/OA9133323/tZv/dZ3/8M//MPv/MM//MNvc9VVV1111VVX/X+CHvSgB3HVVVddddVVV/3fd8011zz4tV/7td/rnd7pnT6bB7hw4QJPfepTuXjxIr/6q7/KVf972Oaq/5ts8+9x8uRJHvawh/Hwhz+cV3iFV+CB7rvvvlv/4R/+4bd/67d+63v+4R/+4be56qqrrrrqqqv+r0MPetCDuOqqq6666qqr/m+65pprHvzar/3a7/VO7/ROn80DXLhwgT//8z/nqU99Kk996lO56qoXxjZX/c9nm+fn5MmTnDhxgoc//OG8wiu8AidPnuR+9913363/8A//8Nu/9Vu/9T3/8A//8NtcddVVV1111VX/F6EHPehBXHXVVVddddVV/3dcc801D37t137t93qnd3qnz+YBLly4wJ//+Z/zZ3/2Z1y8eJGrrvrvZJur/nucPHmSl3/5l+fhD384D3vYw7jffffdd+s//MM//PZv/dZvfc8//MM//DZXXXXVVVddddX/FehBD3oQV1111VVXXXXV/27XXHPNg1/7tV/7vd7pnd7ps3mACxcu8Od//uf82Z/9GRcvXuSqq/6vss1V/3onT57k5V/+5Xn4wx/Owx72MO5333333fpbv/Vb3/0P//APv/MP//APv81VV1111VVXXfW/GXrQgx7EVVddddVVV131v88111zz4Nd+7dd+r9d5ndd572uuuebBPNOFCxf48z//c/7sz/6MixcvctVVV71obPP/2cmTJ3n5l395XuEVXoGTJ09yv/vuu+/W3/qt3/ruH/3RH/0crrrqqquuuuqq/43Qgx70IK666qqrrrrqqv89rrnmmge/9mu/9nu90zu902fzTBcvXuTP/uzPeNrTnsZTn/pU/r+wzVVX/U9hm/8rTp48yRu+4RvyCq/wCtzvvvvuu/Uf/uEffvu3fuu3vucf/uEffpurrrrqqquuuup/C/SgBz2Iq6666qqrrrrqf7Zrrrnmwa/92q/9Xq/zOq/z3tdcc82DeaaLFy/yZ3/2Z/zar/0aV/3vYJurrnputvmf6OTJkzzsYQ/jFV7hFXjYwx7G/e67775bf+u3fuu7f/RHf/RzuOqqq6666qqr/qdDD3rQg7jqqquuuuqqq/5nuuaaax782q/92u/1Tu/0Tp/NM128eJE/+7M/48///M+5ePEiV131L7HNVf832ea/ysmTJ3n5l395XuEVXoGTJ08CcN999936D//wD7/9W7/1W9/zD//wD7/NVVddddVVV131PxF60IMexFVXXXXVVVdd9T/LNddc8+B3fMd3/KzXeZ3XeW+e6eLFi/zqr/4qf/7nf85VV/1PYpur/vewzb/HyZMnedjDHsYrvMIr8LCHPYz7/cM//MNv/8iP/Mjn/MM//MNvc9VVV1111VVX/U+CHvSgB3HVVVddddVVV/3P8I7v+I6f9Tqv8zrvfc011zyYZ/rVX/1V/vzP/5yLFy9y1VX/X9jmqv85bPP8nDx5kpd/+Zfnjd7ojbjffffdd+uP/uiPfs5v/dZvfTdXXXXVVVddddX/BOhBD3oQV1111VVXXXXVf693fMd3/KzXeZ3Xee9rrrnmwQAXL17kz/7sz/i1X/s1rrrqqn8f21z1n+vEiRO8wiu8Ai//8i/PyZMnAbjvvvtu/a3f+q3v/tEf/dHP4aqrrrrqqquu+u+EHvSgB3HVVVddddVVV/33eMd3fMfPeqd3eqfP5pkuXrzIn//5n/Nrv/Zr/G9lm6uu+r/ENle9aE6cOMHDHvYw3vAN35CTJ08CcN999936oz/6o5/zW7/1W9/NVVddddVVV1313wE96EEP4qqrrrrqqquu+q/1ju/4jp/1Tu/0Tp/NM128eJFf+7Vf48///M+56n8n21x11fNjm/+PXv7lX55XeIVX4GEPexgA9913362/9Vu/9d0/+qM/+jlcddVVV1111VX/ldCDHvQgrrrqqquuuuqq/xov9mIv9trv9E7v9Fkv9mIv9toAFy9e5Nd+7df48z//c6666t/LNlf932Gb/wte/uVfnld4hVfgYQ97GAD33XffrT/6oz/6Ob/1W7/13Vx11VVXXXXVVf8V0IMe9CCuuuqqq6666qr/XNdcc82DP/zDP/y7XuzFXuy1AS5evMif//mf82u/9mtcddX/Nra56n8u2/xP9PIv//K84Ru+ISdPnuTChQtM03Tr13/917/PP/zDP/w2V1111VVXXXXVfyb0oAc9iKuuuuqqq6666j/HNddc8+DXfu3Xfq93eqd3+myAixcv8ud//uf82q/9GlddddWz2eaq/z62+a9w4sQJXuEVXoGXf/mX5+TJkwD8yI/8yGf/9m//9vfcd999t3LVVVddddVVV/1nQA960IO46qqrrrrqqqv+473jO77jZ73TO73TZ/NMv/Zrv8av/dqvcdVVV/3nss1V/7ls8+9x4sQJXuEVXoE3fMM3BOC+++679bd+67e++0d/9Ec/h6uuuuqqq6666j8aetCDHsRVV1111VVXXfUf55prrnnwh3/4h3/Xi73Yi702wFOf+lR+9Ed/lIsXL3LVVVf972Cbq/7j2Ob5OXHiBG/4hm/IK7zCKwBw33333fpZn/VZr3PffffdylVXXXXVVVdd9R8FPehBD+Kqq6666qqrrvqP8Tqv8zrv/eEf/uHfBXDx4kV+9Ed/lKc97Wlc9b+Xba666l/LNle96F7+5V+eN3zDN+TEiRPcd999t/7Wb/3Wd//oj/7o53DVVVddddVVV/1HQA960IO46qqrrrrqqqv+fa655poHf/iHf/h3vdiLvdhrA/zar/0av/7rv85VV/1nsM1V/zfZ5v+rEydO8PIv//K84Ru+IQD33XffrZ/1WZ/1Ovfdd9+tXHXVVVddddVV/x7o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TGyTmdim1kqtlc3NTbquo+97tra2eH7uu+++W//hH/7ht++7775b/+Ef/uF3/uEf/uG3ueqqq6666qqrrvq/CT3oQQ/iqquuuuqqq6666v+La6655sFnzpx58DXXXPOgF3uxF3vta6655sEv9mIv9to8H+M4Ionlcsk0TbTWaK0xjiOSiAgigohAEhFBRBARRAQRgSQigoggIogIIoKIQBIRQUQgiYggIpBERCAJSUQEkpCEJCQhCUlIQhIAkgCQxP0k8cLYBsA2ALYBsI1tbGMb29jGNraxjW0yE9tkJrbJTDIT22QmmUlmkpnYJjPJTDKTzCQzyUwyk8zENplJZpKZ2CYzyUxsExFkJvP5nFortVa6rmNjY4MX5L777rv1H/7hH377vvvuu/Uf/uEffucf/uEffpurrrrqqquuuuqq/z/Qgx70IK666qqrrrrqqqv+P7vmmmseDPBiL/Zir/ViL/Zir33NNdc8+MyZMw++5pprHswL0FqjtUZrjczENpnJ/SKCiCAiiAgkERFEBBFBRBARSCIiiAgkERFEBJKQREQgCUlIQhKSkIQkJCEJAElI4n6S+JfY5n62AbCNbQBsYxvb2MY2mYltbJOZ2CYzsU1mYpvMJDPJTDIT22QmmUlmkplkJplJZmKbzCQzkYQkJFFKISIopTCfz3lh7rvvvlvPnj1769///d//NsA//MM//M4//MM//DZXXXXVVVddddVV/7+hBz3oQVx11VVXXXXVVVdd9byuueaaB585c+ZB11xzzUNe7MVe7LUArrnmmge/2Iu92GvzL8hMAGwjCdtEBAARQUQQEUQEkogIIgJJRASSiAgkIQlJRASSkIQkJAEgCUkASAJAEs9NEgC2eSDbANgGwDYAtrGNbWxjG9vYJjOxjW0yE9tkJpmJbTKTzCQzsU1mkplkJra5n20kIYmIICL4l9x33323nj179ta///u//22Af/iHf/jtf/iHf/gdrrrqqquuuuqqq656ftCDHvQgrrrqqquuuuqqq67617nmmmsefObMmQdfc801D36xF3ux1wK45pprHnzmzJkHX3PNNQ/mRSCJ+0kiIpBERFBrBUAStVYAaq1IotaKJCQhCQBJSAJAEg8kiefHNvezDYBtAGxjG9vYxja2sc00TdjGNq01MpPMpLWGbWxjm8wEwDb/Gvfdd9+tAP/wD//w2/fdd9+tAP/wD//wO//wD//w21x11VVXXXXVVVdd9a+FHvSgB3HVVVddddVVV1111X+ca6655sEAZ86cedA111zzEIAXe7EXey2Aa6655sFnzpx58DXXXPNg/gOUUpDE/UopSOJfyzYPNE0TD9Ra49/rvvvuuxXg7Nmzt95333233nfffbcCnD179hn33Xff08+ePfuM++6771auuuqqq6666qqrrvqPhB70oAdx1VVXXXXVVVddddV/vWuuuebBALZ9zTXXPOSaa655MMCZM2cedM011zwY4Jprrnkwz3TmzJkHA1xzzTUP5r/RfffddyvPdPbs2VsB7rvvvlvvu+++W3mms2fPPuO+++679b777nu6JN133323ctVVV1111VVXXXXVfwf0oAc9iKuuuuqqq6666qqr/nc6c+bMgySJZzpz5syDAQPiORkQz8mAeE4GdPbs2Vt5pvvuu+9Wrrrqqquuuuqqq6763wo96EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/Vfwj+jyv8KfCwZQAAAAASUVORK5CYII=) + + diff --git a/docs/kcl/helix.md b/docs/kcl/helix.md index bc8584eb9..d6887f921 100644 --- a/docs/kcl/helix.md +++ b/docs/kcl/helix.md @@ -1,15 +1,15 @@ --- title: "helix" -excerpt: "Create a helix on a cylinder." +excerpt: "Create a helix." layout: manual --- -Create a helix on a cylinder. +Create a helix. ```js -helix(data: HelixData, solid: Solid) -> Solid +helix(data: HelixData) -> HelixValue ``` @@ -17,27 +17,38 @@ helix(data: HelixData, solid: Solid) -> Solid | Name | Type | Description | Required | |----------|------|-------------|----------| -| `data` | [`HelixData`](/docs/kcl/types/HelixData) | Data for helices. | Yes | -| `solid` | [`Solid`](/docs/kcl/types/Solid) | An solid is a collection of extrude surfaces. | Yes | +| `data` | [`HelixData`](/docs/kcl/types/HelixData) | Data for a helix. | Yes | ### Returns -[`Solid`](/docs/kcl/types/Solid) - An solid is a collection of extrude surfaces. +[`HelixValue`](/docs/kcl/types/HelixValue) - A helix. ### Examples ```js -part001 = startSketchOn('XY') - |> circle({ center = [5, 5], radius = 10 }, %) - |> extrude(10, %) - |> helix({ - angleStart = 0, - ccw = true, - revolutions = 16 - }, %) +// Create a helix around the Z axis. +helixPath = helix({ + angleStart = 0, + ccw = true, + revolutions = 16, + length = 10, + radius = 5, + axis = 'Z' +}) + +// Create a spring by sweeping around the helix path. +springSketch = startSketchOn('YZ') + |> circle({ center = [0, 0], radius = 1 }, %) +// |> sweep({ path = helixPath }, %) ``` -![Rendered example of helix 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAIOaklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666n+Na6655sE8lzNnzjyY/0Rnz569ledy33333cpVV1111VVXXXXVVf8bULnqqquuuuqqq6666j/NNddc82CAM2fOPBjgmmuueTDAmTNnHsQzXXPNNQ8GuOaaax7MM505c+bBANdcc82D+R/uvvvuu5UHOHv27K0A9913360803333XcrwNmzZ58BcN99993KM509e/bW++6771auuuqqq6666qqrrvrPgB70oAdx1VVXXXXVVVddddW/7JprrnkwwJkzZx58zTXXPPjMmTMPArjmmmseDHDNNdc8+MyZMw8GuOaaax7Mv9OFCxd4oIsXL/JAFy5c4Pm5ePEi/1YnTpzgBTl58iQPdOLECe538uRJ/iPcd999twKcPXv21vvuu+9WgPvuu+/Ws2fPPgPgvvvuuxXg7Nmzt9533323ctVVV1111VVXXXXVvwQ96EEP4qqrrrrqqquuuur/s2uuuebBAGfOnHnwNddc8+AzZ848CODFX/zFXxvgxV7sxV6bZ7rvvvtuveaaax7MC3HhwgUALl68CMCFCxcAuHjxIgAXLlwA4OLFi9zvwoULAFy8eJH/7U6cOMEDnTx5EoATJ04AcPLkSQBOnDgBwMmTJwE4ceIEJ0+e5F/jvvvuuxXg7Nmzt95333233nfffbeePXv2Gffdd9+tAP/wD//w21x11VVXXXXVVVf9/4Ye9KAHcdVVV1111VVXXfV/2TXXXPNggBd7sRd77TNnzjwI4MVf/MVf+8yZMw++5pprHsy/4MKFCwBcvHiRCxcucPHiRQAuXLjAxYsXAbhw4QIXL17kqv8YJ06cAODkyZOcOHECgJMnT3LixAkATp48yYkTJzh58iT/kvvuu+9WgLNnz95633333Xrffffdevbs2Wfcd999t549e/bW++6771auuuqqq6666qqr/u9CD3rQg7jqqquuuuqqq6763+6aa6558JkzZx78Yi/2Yq8F8OIv/uKvfebMmQdfc801D+aFuHjxIhcuXODixYtcuHABgIsXL3Lx4kUuXLjAxYsX+ZfY5qr/PidOnADg5MmTnDhxAoCHPexhAJw8eZITJ05w8uRJXpD77rvvVoCzZ8/eet999936D//wD79z33333QrwD//wD7/NVVddddVVV1111f9u6EEPehBXXXXVVVddddVV/xtcc801Dz5z5syDX+zFXuy1AF78xV/8tc+cOfPga6655sG8ABcvXuTChQtcvHiRCxcucPHiRS5evMiFCxe4ePEi/5fZ5qpnO3HiBCdPnuTEiRMAPOxhD+PkyZOcOHGCkydP8oLcd999t549e/bW++6779Z/+Id/+J377rvv1n/4h3/4ba666qqrrrrqqqv+d0APetCDuOqqq6666qqrrvqf5JprrnnwmTNnHvxiL/ZirwXw4i/+4q/9Yi/2Yq/NC3Dx4kUuXLjAU5/6VACe9rSnceHCBS5evMhV//ls87/diRMnADh58iQnTpzgYQ97GCdPngTgYQ97GM/Pfffdd+vZs2dvve+++279h3/4h9+57777bv2Hf/iH3+aqq6666qqrrrrqfxb0oAc9iKuuuuqqq6666qr/Ltdcc82DX+zFXuy1z5w586AXf/EXf+0Xe7EXe22ej4sXLwLw1Kc+lQsXLvC0pz2NCxcucPHiRa76v8c2/5OcOHGCkydPcuLECR72sIdx8uRJHvawh/H83HfffbeePXv21vvuu+/Wf/iHf/id++6779Z/+Id/+G2uuuqqq6666qqr/nugBz3oQVx11VVXXXXVVVf9V7jmmmse/Nqv/drvBfDiL/7ir/1iL/Zir81zuXjxIgB//ud/DsBTn/pUnva0p/EfyTZX/f9hm/8sJ06c4OTJk5w4cYKHPexhnDx5koc97GE8t/vuu+9WgH/4h3/47X/4h3/4nfvuu+/Wf/iHf/htrrrqqquuuuqqq/7zoQc96EFcddVVV1111VVX/Ue75pprHvxiL/Zir33mzJkHvfiLv/hrv9iLvdhr81wuXrzIhQsXeNrTnsbFixd56lOfysWLF7nqBbPNVf+1bPOvdeLECR72sIfxsIc9jJMnT3LixAlOnjzJA9133323AvzDP/zDb//DP/zD79x33323/sM//MNvc9VVV1111VVXXfUfCz3oQQ/iqquuuuqqq6666t/rmmuuefBrv/Zrv9eLv/iLv/aLvdiLvTbP5eLFi1y4cIGnPe1pPPWpT+VpT3saV/3PZ5ur/n1sA3DixAlOnjzJiRMneNjDHsYrvMIr8Nzuu+++W//hH/7ht++7775b/+Ef/uF3/uEf/uG3ueqqq6666qqrrvr3QQ960IO46qqrrrrqqquu+te45pprHnzmzJkHv9iLvdhrvfiLv/hrv9iLvdhr8wAXL14E4M///M956lOfytOe9jSuuuqBbHMVnDhxgoc97GE87GEP48SJEzzsYQ/jge67775bAf7hH/7ht//hH/7hd37rt37ru7nqqquuuuqqq67610EPetCDuOqqq6666qqrrnphrrnmmgefOXPmwS/2Yi/2Wi/+4i/+2i/2Yi/22jzAxYsXeepTn8rFixd56lOfytOe9jSuuuq/km3+Lzhx4gQAD3vYw3jYwx7GiRMneNjDHsYD3Xfffbf+wz/8w2//wz/8w+/81m/91ndz1VVXXXXVVVdd9cKhBz3oQVx11VVXXXXVVVc9t2uuuebBr/3ar/1eL/7iL/7aL/ZiL/baPMDFixf58z//cwB+/dd/nav+9Wxz1f8stvmf6MSJEzzsYQ/jYQ97GCdOnOBhD3sY97vvvvtuBfiHf/iH3/6t3/qt7/mHf/iH3+aqq6666qqrrrrqOaEHPehBXHXVVVddddVVV11zzTUPfu3Xfu33evEXf/HXfrEXe7HX5gEuXrzIn//5nwPw67/+61z1v59trvqPY5v/KidOnOBhD3sYD3vYwzhx4gQPe9jDuN99991369mzZ2/9rd/6re+57777bv2Hf/iH3+aqq6666qqrrvr/Dj3oQQ/iqquuuuqqq676/+maa6558Gu/9mu/1+u8zuu89zXXXPNgnunixYs87WlP48KFC/z6r/86V131r2Wbq/5ltvn3OnHiBA972MN42MMexsu//Mtzv/vuu+9WgH/4h3/47d/6rd/6nn/4h3/4ba666qqrrrrqqv+P0IMe9CCuuuqqq6666qr/H6655poHv/Zrv/Z7AbzTO73TZ/MAFy9e5M///M952tOextOe9jSuuup/EttcdYVtXpATJ04A8PIv//I87GEP42EPexj3u++++279h3/4h9/+h3/4h9/5rd/6re/mqquuuuqqq676/wI96EEP4qqrrrrqqquu+r/rmmuuefBrv/Zrv9c111zz4Nd5ndd5b57p4sWLXLx4kac97Wn8+q//Ole96Gxz1f8+tvn/5sSJEzzsYQ/joQ99KC//8i/P/e67775bz549e+tv/dZvfc9v/dZvfTdXXXXVVVddddX/ZehBD3oQV1111VVXXXXV/y3XXHPNg1/7tV/7vV78xV/8tV/sxV7stXmmixcv8hd/8Rc87WlP42lPexpX/d9hm6v+c9nmf7MTJ05w4sQJXv7lX56Xf/mX53733XffrWfPnr31t37rt77nt37rt76bq6666qqrrrrq/xr0oAc9iKuuuuqqq6666n+/a6655sGv/dqv/V4v/uIv/tov9mIv9to808WLF/mLv/gLnva0p/G0pz2Nq67697DNVf86tvmf6MSJE7z8y788L//yL8+JEycAuO+++249e/bsrb/1W7/1Pb/1W7/13Vx11VVXXXXVVf8XoAc96EFcddVVV1111VX/e11zzTUPfu3Xfu33eqd3eqfP5pkuXrzIX/zFX/C0pz2Npz3taVx11f9ktrnqednmv8qJEyd4+Zd/eV7+5V+eEydOAHDffffd+g//8A+//Vu/9Vvf8w//8A+/zVVXXXXVVVdd9b8VetCDHsRVV1111VVXXfW/yzXXXPPg137t136vd3qnd/psnunixYv8xV/8BU972tN42tOexr+HJP6ns81VVz2Qbf4/s82/14kTJzhx4gQv//Ivz8u//Mtzv/vuu+/W3/qt3/ruf/iHf/idf/iHf/htrrrqqquuuuqq/03Qgx70IK666qqrrrrqqv8d3vEd3/GzXvzFX/y1X+zFXuy1eaaLFy/yF3/xF/zGb/wGV/3vZ5ur/nvY5v8T27wwJ06c4GEPexgv93Ivx8Me9jDud9999936oz/6o5/zW7/1W9/NVVddddVVV131vwF60IMexFVXXXXVVVdd9T/XNddc8+DXfu3Xfq93eqd3+mye6eLFi/zFX/wFv/Ebv8FVV/172eaqfx/b/F924sQJXu7lXo6Xf/mX58SJEwDcd999t/7Wb/3Wd//2b//299x33323ctVVV1111VVX/U+FHvSgB3HVVVddddVVV/3Pc8011zz4Hd/xHT/rdV7ndd6bZ7p48SK/8Ru/wV/8xV9w1VX/09nmqhfONv+bnDhxgoc+9KE87GEP4+Ve7uUAuO+++279h3/4h9/+rd/6re/5h3/4h9/mqquuuuqqq676nwY96EEP4qqrrrrqqquu+p/jHd/xHT/rdV7ndd77mmuueTDAxYsX+Yu/+At+4zd+g6uu+v/KNlddYZv/CU6cOMHLvdzL8QZv8Abc77777rv1R3/0Rz/nt37rt76bq6666qqrrrrqfwr0oAc9iKuuuuqqq6666r/fO77jO37W67zO67z3Nddc82CAixcv8pd/+Zf8xm/8Blf9z2ebq/5ns83/R7b5z3TixAke+tCH8vIv//I89KEPBeC+++679bd+67e++0d/9Ec/h6uuuuqqq6666r8betCDHsRVV1111VVXXfXf5x3f8R0/653e6Z0+m2e6ePEiv/Ebv8Ff/uVfctVV/1q2ueo/nm3+P7DNv8fLvdzL8fIv//I89KEPBeC+++679bd+67e++0d/9Ec/h6uuuuqqq6666r8LetCDHsRVV1111VVXXfVf7x3f8R0/653e6Z0+m2d62tOexk/8xE9w8eJFrrrqfzLbXPWisc3/VbZ5QU6cOMEbvMEb8HIv93IA3Hfffbf+1m/91nf/6I/+6Odw1VVXXXXVVVf9V0MPetCDuOqqq6666qqr/uu84zu+42e90zu902fzTE972tP4iZ/4CS5evMhVV/1/ZJurns02/1ecOHGC13/91+flXu7lALjvvvtu/a3f+q3v/tEf/dHP4aqrrrrqqquu+q+CHvSgB3HVVVddddVVV/3ne7EXe7HX/vAP//Dvuuaaax4M8LSnPY2f+Imf4OLFi/xXk8T/Zba56v8X2/x/Zpv/yU6cOMHrv/7r83Iv93IA3Hfffbf+1m/91nf/6I/+6Odw1VVXXXXVVVf9Z0MPetCDuOqqq6666qqr/vNcc801D/7wD//w73qxF3ux1wa4ePEiP/ETP8HTn/50rrrq+bHNVf+1bPP/hW3+u5w4cYJ3eId34KEPfSgA9913361f//Vf/z7/8A//8NtcddVVV1111VX/WdCDHvQgrrrqqquuuuqq/3jXXHPNg1/7tV/7vd7pnd7pswEuXrzIb/7mb/KXf/mXXHXV/yS2uerfxjb/l9nmP8PLvdzL8fqv//qcOHGC++6779bf+q3f+u7f/u3f/p777rvvVq666qqrrrrqqv9o6EEPehBXXXXVVVddddV/rNd5ndd57w//8A//Lp7pN37jN/jN3/xNrrrq/wvbXPWC2eb/Gtv8a5w4cYKXe7mX4/Vf//UBuO+++279rd/6re/+0R/90c/hqquuuuqqq676j4Qe9KAHcdVVV1111VVX/cf53M/93N96sRd7sdcGePrTn85P/MRPcPHiRa666qp/G9v8f2eb/yts80AnTpzg5V7u5Xj91399AO67775bP+uzPut17rvvvlu56qqrrrrqqqv+I6AHPehBXHXVVVddddVV/37v+I7v+Fnv9E7v9NkAFy9e5Cd+4id4+tOfzotCElf972Wbq/7nss3/N7b53+blXu7leL3Xez1OnDjBfffdd+tv/dZvffeP/uiPfg5XXXXVVVddddW/F3rQgx7EVVddddVVV131b3fNNdc8+MM//MO/68Ve7MVeG+Av//Iv+cmf/Emuuuq/mm2u+o9lm//rbPM/xYkTJ3jZl31ZXv/1Xx+Af/iHf/jtr//6r3+f++6771auuuqqq6666qp/K8rx48e56qqrrrrqqqv+bV7sxV7stb/iK77ir6655poHX7x4kR/8wR/kj/7oj7jqqv8OkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEIS/x9JQhKSkIQkJCEJSUhCEpKQhCQk8b+JJCQhCUlIQhKSkIQkJCGJ/2yr1YqnP/3pPP3pT+ehD30ot9xyy4Nf8RVf8a03NzeP/8M//MPvcNVVV1111VVX/VtQjh8/zlVXXXXVVVdd9a/3ju/4jp/1ER/xEd8N8PSnP51v+IZvYHd3l6uu+r9KEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkMT/dZKQhCQkIQlJSEISkpCEJCTxv4UkJCEJSUhCEpKQhCQk8e918eJFHve4x7FcLnmJl3iJ4y/+4i/+2gD/8A//8DtcddVVV1111VX/WuhBD3oQV1111VVXXXXVv87nfu7n/taLvdiLvTbAb/7mb/Kbv/mb/F8hif8NbHPVVbb5/8g2/xfY5l/yeq/3erz+678+AP/wD//w25/5mZ/5Olx11VVXXXXVVf8a6EEPehBXXXXVVVddddWL5pprrnnwh3/4h3/Xi73Yi732xYsX+cmf/EluvfVWrrrq38M2V/3Xs83/F7b53+z48eN8wAd8ACdOnOC+++679bM+67Ne57777ruVq6666qqrrrrqRYEe9KAHcdVVV1111VVX/cuuueaaB3/TN33T0wF2d3f5ju/4DnZ3d7nqqv9tbHPVv51t/i+zzf9EJ06c4P3f//05ceIEZ8+efcZnfuZnvvZ99913K1ddddVVV1111b+Ecvz4ca666qqrrrrqqhfuxV7sxV77K77iK/4K4OlPfzrf+I3fyGq14qqr/jeShCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUji/wtJSEISkpCEJCQhCUlIQhKSkMT/JpKQhCQkIQlJSEISkpDEf7XVasXjH/94VqsVL/7iL378FV/xFd/61ltv/ZuzZ8/eylVXXXXVVVdd9cJQjh8/zlVXXXXVVVdd9YK92Iu92Gt/7ud+7m8BPP3pT+c7v/M7ueqqq56XJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQk8X+RJCQhCUlIQhKSkIQkJCEJSfxvIAlJSEISkpCEJCQhCUn8R1qtVuzu7rJarXiJl3iJ4y/2Yi/22kdHR5duvfXWv+aqq6666qqrrnpBKMePH+eqq6666qqrrnr+XuzFXuy1P/zDP/y7Njc3j//VX/0VP/iDP8h/NUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlc9V9LEpKQhCQkIQlJSEISkpCEJCQhCUlI4v8CSUhCEpKQhCQkIQlJSEISkvifTBKSkIQkJCEJSUhCEpJ4Ua1WK57+9KcD8BIv8RLHH/zgB7/0rbfe+jdnz569lauuuuqqq6666vmhHD9+nKuuuuqqq6666nm92Iu92Gt/7ud+7m9tbm4e/6u/+it+6qd+CklIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkMRV//0kIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlI4qoXThKSkIQkJCEJSUhCEpKQhCQkIQlJ/G8lCUlIQhKSkIQkJCEJSUjifypJSEISkpCEJCQhCUk80NOf/nQAXuIlXuL4i73Yi732M57xjL+57777buWqq6666qqrrnpulOPHj3PVVVddddVVVz2na6655sFf8RVf8VcAT3/60/mhH/ohrrrqfwpJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJ/H8lCUlIQhKSkIQkJCEJSUhCEpL430YSkpCEJCQhCUlIQhKSkMT/NJKQhCQk8fSnPx2Al3iJlzh+zTXXPOQf/uEffvvw8HCXq6666qqrrrrqgQiuuuqqq6666qrn8eEf/uHfBfD0pz+d7/qu7+Kqq/6/kYQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCTxf50kJCEJSUhCEpKQhCQkIQlJSOJ/C0lIQhKSkIQkJCEJSUjiv9Nf/dVf8fSnP50Xe7EXe63P+ZzP+S2uuuqqq6666qrnRjl+/DhXXXXVVVddddWzfe7nfu5vvdiLvdhr7+7u8k3f9E1cddVV/z6SkIQkJCEJSUhCEpKQhCQkIQlJSEISkpDE/yWSkIQkJCEJSUhCEpKQhCQk8T+dJCQhCUlIQhKSkIQk/rOsViue/vSn85jHPIbTp08fv+aaax78p3/6pz/DVVddddVVV111P4KrrrrqqquuuupZXud1Xue9X+zFXuy1AX7yJ3+S/yiSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCElf9x5CEJCQhCUlIQhKSkIQkJCEJSUhCEv/bSUISkpCEJCQhCUlIQhKS+J9KEpKQhCQkIQlJSEISkvi3uHjxIt/+7d8OwOu8zuu89+u8zuu8N1ddddVVV1111f0ox48f56qrrrrqqquugmuuuebBn/u5n/tbAN/1Xd/FM57xDCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIYmr/n+ThCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJXPWcJCEJSUhCEpKQhCQkIQlJSEISkvjfSBKSkIQkJCEJSUhCEpKQxP9EkpCEJCQhCUlIQhKSeH5WqxW7u7s89rGP5cEPfvBL/9mf/dnPHB4e7nLVVVddddVVVxFcddVVV1111VWXffiHf/h3Adx6663ceuutXHXV/2aSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUn8fyMJSUhCEpKQhCQkIQlJSEISkvjfRBKSkIQkJCEJSUhCEpL4n0YSkpCEJCQhib/6q7/iL//yL7nmmmse/OEf/uHfxVVXXXXVVVddBUBw1VVXXXXVVVfxYi/2Yq/9Yi/2Yq8N8FM/9VNcddVVz58kJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhif+rJCEJSUhCEpKQhCQkIQlJSOJ/A0lIQhKSkIQkJCEJSUjif4Lf/M3fBODFXuzFXvvFX/zFX5urrrrqqquuuorgqquuuuqqq67ind7pnT4L4Kd+6qfY3d3l/yJJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkMRV/7NJQhKSkIQkJCEJSUhCEpKQhCQkIQlJ/F8hCUlIQhKSkIQkJCEJSUhCEv+TSUISkpCEJCQhCUlI4j/b7u4uv/mbvwnAa7/2a783V1111VVXXXUVlauuuuqqq676f+51Xud13vvFXuzFXnt3d5e//uu/5kUliav+Z5PE/ya2uepFJ4l/K9v8byWJF5Vt/qeRxIvCNv9Wf/mXf8lDHvIQXud1Xue9fuu3fuu7/+Ef/uG3ueqqq6666qr/vwiuuuqqq6666v+513md13kvgN/+7d9GEpKQhCQkIQlJSEISkpDEVVf9R5OEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJK4CSUhCEpKQhCQkIQlJSEISkpCEJP63kYQkJCEJSUhCEpKQhCT+J5KEJCQhCUlIQhKSeGF2d3f5y7/8SwDe6Z3e6bO46qqrrrrqqv/fqFx11VVXXXXV/2Mv9mIv9tov9mIv9toAf/3Xf81VV/1/IIn/aLb5/0AS/xq2+d9AEi8K2/xPIYkX5tZbbwXgzJkzD77mmmsefN99993KVVddddVVV/3/RHDVVVddddVV/4+9zuu8znsB/PVf/zVXXXXVv50kJCEJSUhCEpKQhCQkIQlJSEISkpCEJCTxf40kJCEJSUhCEpKQhCQkIQlJ/E8nCUlIQhKSkIQkJCEJSfxPsLu7y1/91V9xzTXXPPi1X/u134urrrrqqquu+v+L4Kqrrrrqqqv+H3uxF3ux1wb467/+a/6nk4QkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlI4qr/WpKQhCQkIQlJSEISkpCEJCQhCUlI4v8CSUhCEpKQhCQkIQlJSEIS/5NJQhKSkIQkJCEJSUjiv8Jf/uVfAvA6r/M6781VV1111VVX/f9F5aqrrrrqqqv+H7vmmmseDHDrrbfy3CRx1VWS+J/CNle9YJL4t7DN/0aSeFHZ5n8aSfxLbPPvsbu7C0Df9w++5pprHnzffffdylVXXXXVVVf9/0Plqquuuuqqq/6fep3XeZ33Bvjrv/5rJHHVVf/TSeI/k23+P5LEv5Zt/jeRxIvCNv+TSOJfYpsXZHd3l6c//ek85CEP4cyZMw++7777buWqq6666qqr/v8huOqqq6666qr/p86cOfMggN3dXa666iqQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCGJ/8skIQlJSEISkpCEJCQhCUlIQhL/G0hCEpKQhCQkIQlJSEIS/5NIQhKSkIQkJCEJSTz96U8H4MVe7MVei6uuuuqqq676/4nKVVddddVVV/0/dc011zwY4NKlS1x11VX/8STx72Gb/0sk8aKyzf9kkviX2OZ/gkuXLgFwzTXXPJirrrrqqquu+v+JylVXXXXVVVf9P3XNNdc8GGB3d5f/LpK46v8O21z1H0cS/1a2+d9MEi8q2/xPJIl/iW3+s128eBGAa6655sFcddVVV1111f9PVK666qqrrrrqKiRx1VX/XpL472Cbq56TJP4tbPO/jSReVLb5n0QS/xLbXHXVVVddddVV/y5Urrrqqquuuuqqq676X00S/1ls8/+JJP61bPO/hST+Jbb5n0QS/xLbXHXVVVddddVVLxDBVVddddVVV/0/dd99993KVVdd9UJJQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEIS/5dJQhKSkIQkJCEJSUhCEpKQxP90kpCEJCQhCUlIQhKSkMT/JJKQhCQkIQlJSEISV1111VVXXfX/HMFVV1111VVX/T93/Phxrrrqqv9ckpCEJCQhCUlIQhKSkIQkJCEJSUhCEv+XSEISkpCEJCQhCUlIQhKS+J9MEpKQhCQkIQlJSEIS/xMcP34cgPvuu+9Wrrrqqquuuur/JypXXXXVVVdd9f/UfffddyvA8ePH+c8kiauuss1V/3aS+Leyzf9WknhR2eZ/Gkn8S2zzn+n48eMA3Hfffbdy1VVXXXXVVf8/Ubnqqquuuuqq/6f+4R/+4XcAHvzgB/O7v/u7XHXVfyZJ/FeyzVVXSOJfyzb/20jiRWGb/0kk8S+xzb/ViRMnAPiHf/iH3+Gqq6666qqr/n+ictVVV1111VX/T509e/ZWgGPHjnHVVf/XSOI/mm3+v5DEv5Zt/jeQxIvCNv9TSOKFsc0L8uAHPxiAs2fP3spVV1111VVX/f9E5aqrrrrqqqv+H7v33nu59tpredCDHsQznvEMrrrqqhdMEv8RbPN/kSReVLb5n04S/xLb/E8giefnpV/6pTl+/DgA9913361cddVVV1111f9PVK666qqrrrrq/6kzZ848+NprrwXgpV7qpXjGM57B/1eS+N/ONlf97yCJfw/b/G8niReVbf6nksS/xDb/XR784AcD8KM/+qPfzVVXXXXVVVf9/0Xlqquuuuqqq67iQQ96EP8RJHHVfw9J/G9km6v+dSTxb2Gb/40k8aKyzf80kviX2OY/w4Mf/GAAbN/KVVddddVVV/3/ReWqq6666qqrrrrspV7qpfjbv/1brrrqv5Ik/ivY5v87Sfxr2eZ/E0m8KGzzP4kkXhjb/Gu99Eu/NMePH+fJT34yV1111VVXXfX/HMFVV1111VVX/T919uzZW++7775bAY4fP85rvuZrctVV/1dJQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpDE/xeSkIQkJCEJSUhCEpKQhCQk8b+FJCQhCUlIQhKSkIQk/ieRhCQkIQlJSEISknh+XvqlXxqAJz3pSVxzzTUP5qqrrrrqqqv+/yK46qqrrrrqqv/Hzp49eyvPdPz4cV7yJV+Sq6666l8mCUlIQhKSkIQkJCEJSUhCEpKQhCQkIYn/iyQhCUlIQhKSkIQkJCEJSfxPJwlJSEISkpCEJCQhif8pJCEJSUjiZV7mZXjwgx/MhQsXOH/+PFddddVVV131/xzBVVddddVVV/0/dd999936Iz/yI5/DA7zma74mV1111X8NSUhCEpKQhCQkIQlJSEISkpCEJCTxf4EkJCEJSUhCEpKQhCQkIYn/qSQhCUlIQhKSkIQkJPHf4bVe67UA+KVf+iVOnjzJNddc82Cuuuqqq6666v8vKlddddVVV131/9g//MM//PZ99913a0Q8+MKFCzzykY/kLd7iLfi5n/s5/qNJ4qr/v2xz1X8cSfxb2OZ/I0m8KGzzP40k/iW2+Y/yVm/1Vhw/fpynPOUp/Omf/inv/M7vzFVXXXXVVVf9P0dw1VVXXXXVVf/P/cM//AOnT5/m3LlzALzUS70UD37wg5GEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIYmr/n+ThCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkcdULJglJSEISkpCEJCQhCUlIQhKS+N9EEpKQhCQkIQlJSEISkvifRhKSkIQkJCEJSUjiRfXgBz+Yl37plwbgV37lV7DNIx/5SK666qqrrrrq/zmCq6666qqrrvp/7pprrnnwE5/4RB71qEfx8z//8wC8xVu8BceOHeOqq/43koQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUn8fyYJSUhCEpKQhCQkIQlJSEIS/xtIQhKSkIQkJCEJSUhCEv9TSEISkpCEJCQhCUkAHD9+nPd6r/did3eXX/3VX+WpT30qr/iKr8ipU6f4+7//+9/mqquuuuqqq/7/Irjqqquuuuqqq/jpn/5pTp06xSMf+Uie/OQnc+zYMd7jPd6Dq6666gpJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUji/wNJSEISkpCEJCQhCUlIQhL/00lCEpKQhCQkIQlJSOJ/Akm81Vu9FQDnz5/nV3/1V7HNIx7xCAD+4R/+4Xe46qqrrrrqqv+/CK666qqrrrrq/7kzZ87w+Mc/nic+8YmcOnWKP/7jP+bChQscO3aMt3iLt+CqKyQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJHHV/36SkIQkJCEJSUhCEpKQhCQkIQlJSOL/IklIQhKSkIQkJCEJSUhCEv9TSUISkpCEJCQhCUlI4j/be77ne/LgBz+Ypz3taXzLt3wL93ulV3ol/uEf/uG3/+Ef/uG3ueqqq6666qr/vwiuuuqqq6666v852wD83M/9HKdOneJN3/RN+Zqv+RoAXvIlX5LXeI3X4N9DEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpL4n0ASkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkrjq30YSkpCEJCQhCUlIQhKSkIQkJCGJ/yskIQlJSEISkpCEJCQhif+JJCEJSUhCEpKQhCT+PV7rtV6LBz/4wQD8+q//Ovd7l3d5FwB+67d+63u46qqrrrrqqv/fCK666qqrrrrq/7Frrrnmwddeey2PetSjeMITnsCTnvQkTp06xZu8yZvwAz/wAwC85mu+Jq/5mq+JJCQhCUlIQhKSkIQkJCEJSUhCEldd9dwkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIYmrrpCEJCQhCUlIQhKSkIQkJCEJSfxvJglJSEISkpCEJCQhif9pJCEJSUhCEpKQhCRekJd6qZfitV7rtQD4tm/7Np72tKdxv1d8xVfkyU9+MlddddVVV111FQRXXXXVVVdddRWPfvSjAfi5n/s5AB7xiEfwJ3/yJ/zgD/4gAK/xGq/Ba7zGa3DVVf+bSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCT+v5CEJCQhCUlIQhKSkIQkJCGJ/20kIQlJSEISkpCEJCQhif8pJCEJSUhCEi/90i/NW73VWwHw7d/+7TztaU/jfu/0Tu8EwC/+4i9y5syZB3HVVVddddVV/78RXHXVVVddddX/c/fdd9+tj370o7HNk570JJ70pCdx6tQp3u3d3o0//dM/5Zd/+ZcBeI3XeA1e4zVeg6uu+v9MEpKQhCQkIQlJSEISkpCEJCQhCUlIQhL/F0lCEpKQhCQkIQlJSEISkvjfRBKSkIQkJCEJSUhCEv8dXvM1X5O3fMu3BOA7vuM7ePrTn879HvrQh/IKr/AK/Omf/imZyVVXXXXVVVddBZWrrrrqqquu+n/svvvuu/Waa655cERw+vRpdnd3+YVf+AUe+chH8ohHPALb/Mqv/AoXL17kXd7lXXiN13gNAH7v936P/8sk8b+Jba7630MS/1a2+d9OEi8q2/xPJ4kXxjb/kd7yLd+Sl3qpl2J3d5ef/Mmf5OlPfzoP9E7v9E4A/PIv/zIPfvCDueqqq6666qqroBw/fpyrrrrqqquu+v/s7Nmzz3jt137ttz46OuJJT3oSFy9e5FGPehQ33XQTp06d4u///u+56667uHjxIi/+4i/Ogx70IG655Rb+7u/+jn+JJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEIS/9tIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCRx1b+eJCQhCUlIQhKSkIQkJCEJSUhCEv9bSUISkpCEJCQhCUlIQhL/k0lCEpKQhCQkIQlJSOJF9Z7v+Z486lGPAuAHf/AHefrTn879bPMO7/AOPPShD+XP/uzP+NM//VNe7MVejBMnTtz6p3/6pz/DVVddddVVV/3/RXDVVVddddVV/8/9wz/8w28DvNqrvRr3+77v+z4uXLjAK77iK/JGb/RGAPzZn/0ZX/AFX8DFixc5fvw4H/ZhH8bx48eRhCQkIQlJSEISV131wkhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUjiqiskIQlJSEISkpCEJCQhCUlI4n8bSUhCEpKQhCQkIQlJ/E8mCUlIQhKSkIQkJHH8+HHe8z3fkwc96EHs7u7yXd/1Xdx666080EMf+lBe7uVeDoBf/dVfxTYnT57kqquuuuqqq66C4Kqrrrrqqqv+n7vvvvtu/fu///tbT58+zSMf+UgAzp8/zy/+4i8C8MZv/MZ8+qd/OgAXL17km77pm8hMjh07xru927vx6q/+6lx11f9UkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQk8f+FJCQhCUlIQhKSkIQkJCEJSfxvIAlJSEISkpCEJCQhCUn8T/OgBz2Ij/iIj+BBD3oQu7u7fPd3fze33norz+31Xu/1APjzP/9zLly4AMCjHvUorrrqqquuuuoqCK666qqrrrrqKiQB8D7v8z7YBuBP/uRP+JzP+RwuXLjAyZMn+bRP+zROnDjBxYsX+eZv/mZ+7dd+jWPHjvEar/EavPqrvzpXXfX/gSQkIQlJSEISkpCEJCQhCUlIQhKSkIQk/i+ShCQkIQlJSEISkpCEJCTxP50kJCEJSUhCEpKQhCT+q7zma74m7/Ee7wHArbfeytd8zdewu7vLc3vIQx7CQx/6UAB+9Vd/Fdu84iu+IqdOneIf/uEffoerrrrqqquu+v+N4Kqrrrrqqquuuuzbv/3bOXXqFI985CO53/nz5/n6r/96Lly4wMmTJ/mQD/kQHvawh3Hx4kV+/dd/nV//9V8H4DVe4zX40A/9UI4dO8b/dpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUjiqv8dJCEJSUhCEpKQhCQkIQlJSEISkpDE/wWSkIQkJCEJSUhCEpKQxP9kkpCEJCQhCUlIQhL/XsePH+fDP/zDec3XfE0Afud3fofv/d7v5QV53dd9XQB+7dd+jYsXLwLw8Ic/nKuuuuqqq6666jLK8ePHueqqq6666qr/717ndV7no3/913/9+Bu+4RvyyEc+kt/8zd9EEpJYrVb8/d//PavVipd4iZfgYQ97GIvFgqc97Wk8/elP5y//8i957GMfy/Hjx3nkIx/JbDbjtttuA0ASkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQk8b+ZJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJXPWvJwlJSEISkpCEJCQhCUlIQhKS+N9KEpKQhCQkIQlJSEISkvifSBKSkIQkJCEJSUhCEi/Ia77ma/IO7/AOzOdzLl26xI/92I/xN3/zN7wgb/u2b8tjH/tYAL71W78V29jmbd7mbdjf37/167/+69+Hq6666qqrrvr/jXL8+HGuuuqqq6666v+7D//wD//qH/iBH+DixYu82qu9GgBPecpTkIQkVqsVFy9eZLVa8eIv/uI87GEPA+DpT386y+WSxz/+8axWKx7zmMfwoAc9iJd8yZfkvvvu49KlS1x11QsiCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhiatAEpKQhCQkIQlJSEISkpCEJCTxv4kkJCEJSUhCEpKQhCQk8T+NJCQhCUkcP36cD/iAD+BRj3oUAL/7u7/Lj//4j7O7u8vzc/z4cd71Xd+Vxz72sQB86Zd+KcvlEtu8/Mu/PK/4iq/Id33Xd33Mrbfe+tdcddVVV1111f9vVK666qqrrrrqqsse9ahH8cQnPhGAN3uzN+MpT3kKT33qU7GNJC5cuMCv/MqvAPCGb/iGvMEbvAEnT57kx37sx7h48SK/8Ru/wV/91V/xfu/3fpw4cYJ3fdd35fd///f5/d//fa666r+LJP4j2eb/A0n8a9jmfzpJ/Ets81/t2LFjvORLviSv+ZqvCcClS5f4uZ/7OZ7xjGfwghw/fpz3eZ/34fjx41y8eJEf//Ef5+LFi9zvjd7ojbhw4QJXXXXVVVddddVllOPHj3PVVVddddVV/9+90zu902efPXuWv/mbv+HixYu89Eu/NKdOneJP//RPkYQkJCGJpz3taTztaU/j5V/+5bnhhht4uZd7OR73uMexWq1YrVY8/vGPZ7Va8ZCHPIRbbrmFl3iJl2A+n3Pbbbdx1VX/20lCEpKQhCQkIQlJSEISkpCEJCQhCUlI4v8iSUhCEpKQhCQkIQlJSEIS/5NJQhKSkIQkJCEJSUjiP9JrvMZr8A7v8A486EEPAuD3f//3+Ymf+AkuXbrEC/LgBz+YD/mQD2E+n/P0pz+db/iGb+DixYsA2OblXu7leIVXeAV+67d+i4sXL/7Mrbfe+tdcddVVV1111f9vlOPHj3PVVVddddVV/9+90zu902cD/OEf/iGr1YrXf/3X59SpUzz5yU/m4sWLAEhCEpK4ePEif/EXf8GLv/iLc+LECR772Mfy+Mc/ntVqxWq14tZbb+Wv/uqvuP7667nuuuu45ZZbeImXeAnuu+8+Ll26xP8WkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQxFX/u0hCEpKQhCQkIQlJSEISkpCEJCQhif8LJCEJSUhCEpKQhCQkIYn/qSQhCUlIQhKSkIQkXhTHjh3jAz7gA3jUox4FwG233cYP/uAP8uQnP5kX5rVe67V467d+awD+6q/+ih/8wR8EwDYAtnnP93xPlsslf/M3f8N6vf6ZW2+99a+56qqrrrrqqv/fKMePH+eqq6666qqr/j+75pprHry5uXn8IQ95yEv/2q/9Guv1mosXL/JSL/VSnDx5kj/90z9FEpKQhCQksVqteNzjHseLvdiLceLECR772MeyXC655557kMR6veav/uqvuHTpEtdffz3Hjx/nJV7iJbjlllvY29tjb28PSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhif8tJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSuOpfTxKSkIQkJCEJSUhCEpKQhCQk8b+VJCQhCUlIQhKSkIQkJPE/jSQkIQlJSEISkjh+/Dhv//Zvzxu+4Rsyn8+5dOkSv/mbv8lv/MZvsFqteGHe8z3fk5d+6ZcG4Ld+67f4pV/6Je5nG4AP/MAP5IYbbuA7v/M76fuenZ2dv/6Hf/iH3+Gqq6666qqr/n+jHD9+nKuuuuqqq676/+zw8HD3FV/xFd/6xV7sxV763Llz3HnnnaxWK173dV+XU6dO8ZSnPIWLFy8iCUlIQhKSWK1WPO5xj2O1WvFiL/ZiXH/99cznc2699VYkAXDPPffwhCc8gdVqxUMe8hCOHTvGS7zES3Ds2DHuu+8+1us1V/3/JAlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIYmrQBKSkIQkJCEJSUhCEpKQhCT+t5GEJCQhCUlIQhKSkMR/t2PHjvGKr/iKvP3bvz3Hjx/n0qVL/MVf/AU/9VM/xX333ccLc/z4cd7xHd+RBz/4wezu7vLDP/zD/PVf/zUPZJuHPvShvP7rvz5PfepT+eVf/mVe8zVfk0uXLv32P/zDP/wOV1111VVXXfX/G+X48eNcddVVV1111f93t95669+8+Zu/+Uffcsst/Pqv/zqr1YqLFy/yUi/1UjziEY/gd37ndwCQhCQkIQlJrFYrnv70pwPwYi/2Yjz0oQ8F4OlPfzqSkMRqteIZz3gGf/M3f8NqteLBD34w1157LY94xCO45ppruO+++1iv11x11X80SUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhL/X0hCEpKQhCQkIQlJSEISkpDE/waSkIQkJCEJSUhCEpL4z3Ds2DFe8RVfkbd/+7fnQQ96EAB/+Id/yM/8zM9w++238y950IMexPu///tz/Phxdnd3+Zmf+RluvfVWnpttPuADPoDFYsGP/MiPcO7cOV7zNV+Te+6557f/4R/+4Xe46qqrrrrqqv/fKMePH+eqq6666qqr/r87PDzcffEXf/HXfvCDH/zgJz3pSVy4cIHVasXNN9/MTTfdxCu+4ivy93//9yyXSyQhCUlIQhIAT3/605HEQx/6UB7ykIdw/PhxnvCEJyAJAEms12tuvfVW/uZv/obVasWjH/1orr32Wh7xiEdwzTXXsF6vuXTpEldd9T+RJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCT+L5KEJCQhCUlIQhKSkIQkJPE/mSQkIQlJSEISkpCEJF5Ux44d4xVf8RV5+7d/ex70oAcB8Mu//Mv8zM/8DLfffjsvipd6qZfi7d/+7QF4xjOewbd+67eyu7vL8/MyL/MyvNzLvRxPfepT+dVf/VUykzd5kzfhaU972m//wz/8w+9w1VVXXXXVVf+/UY4fP85VV1111VVXXQWPecxj3vuhD33ogwH+5m/+htVqxVOe8hRe6qVeipMnT/ISL/ES/P3f/z3L5RJJSEISAJKQxNOf/nT+6q/+ild91Vfl+uuv52Vf9mWZz+fceuutSAJAEuv1mmc84xn87d/+LavVikc96lFce+21vMRLvATHjh1jvV5z6dIl/qeThCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIYmr/veThCQkIQlJSEISkpCEJCQhCUlIQhL/F0hCEpKQhCQkIQlJSEIS/1NJQhKSkIQkJCEJSRw7dow3eIM34C3e4i140IMeBMAf/dEf8Su/8ivcfvvtvKhe4zVegzd4gzcA4Hd/93f52Z/9WV6Yd3u3d2OxWPCjP/qjnD9/npd/+ZfnlV7plTh79uwz/vRP//Snueqqq6666qr/3yjHjx/nqquuuuqqq66CV3qlV3rvO++888Gv9mqvxpOe9CQuXLjAarXi7/7u77jpppu48cYbefEXf3FWqxV33XUX95OEJCQhidVqxV/91V9x/fXXc/311/OQhzyEl3mZl2E+n3PrrbciCUkArNdrnvGMZ/C3f/u3rFYrHvzgB3PttdfyEi/xErzES7wE6/Was2fPIglJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkMR/NUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlI4qp/G0lIQhKSkIQkJCEJSUhCEpKQxP9WkpCEJCQhCUlIQhKSkMT/FK/+6q/Om7/5m/Mar/EaXHvttQD80R/9ET/+4z/O7bffznq95l8iiWPHjvF2b/d2vORLviQAP/dzP8ef/umf8sK8zMu8DC/7si/L0572NH7t134N27zma74mXdfd+mM/9mOfc999993KVVddddVVV/3/Rjl+/DhXXXXVVVdddRW8z/u8z2d/+7d/+/E3eqM34tSpU/zxH/8xklitVjzlKU9htVrxEi/xEtxwww0sFgue9rSnIQlJSEISkgBYrVb81V/9Fbu7u8znc66//noe8pCH8DIv8zLM53NuvfVWJCEJgPV6zTOe8Qz+7u/+jtVqxbFjxzh+/DiPeMQjePEXf3Hm8zl7e3us12uu+t9PEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCElddIQlJSEISkpCEJCQhCUlIQhL/20hCEpKQhCQkIQlJSOI/y7Fjx3iFV3gF3u3d3o0HPehBzOdz9vb2+J3f+R1+7ud+jjvuuIN/jWPHjvGu7/quXHvttVy6dIkf//Ef50lPehL/kg/7sA8D4Md+7Me4cOECtnnrt35rTp8+ffzrv/7r34errrrqqquuuopy/PhxrrrqqquuuuoqePM3f/OP/v3f//3jW1tbvMzLvAxPetKTuHjxIpJYrVY89alPRRIv8RIvwcMe9jAAnva0pyEJSUhCEgCSkMQ999zDX/3VX/HXf/3XXH/99Vx33XU8+MEP5qVf+qWZz+fs7u6yXq8BkMRqteK2227jSU96Evfeey/z+Zxrr72WW265hUc84hFce+21rFYr9vb2uOqqF0YSkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCT+v5CEJCQhCUlIQhKSkIQkJCGJ/w0kIQlJSEISkpCEJCTxr3Hs2DHe4A3egDd/8zfnQQ96EAB7e3v81V/9FT//8z/P2bNneVFJAuCWW27hfd7nfZjP51y6dIlv+IZv4NKlS7wwx48f513f9V0BePzjH8/v//7vY5uXf/mX5xVe4RX4+q//+ve59dZb/5qrrrrqqquuuorKVVddddVVV131LKdOneJnf/ZnebVXezXe8z3fk6/5mq/h4sWLSALgV37lVwB4ozd6I97wDd8QSfz6r/8697ONJO5nG0ns7u7ynd/5nZw4cYK3eZu34cEPfjCv/dqvzUu/9EvzN3/zN/zN3/wNly5d4n67u7tcunSJv/3bv+X48eO8xmu8Bi/5ki/JsWPHePEXf3EuXbrE3//93/P3f//3XLp0iauu+s8miX8v2/xfI4kXlW3+p5LEC3Ps2DFe/MVfnJd8yZfk2LFj3O9P/uRPePzjH8/e3h62+dd61Vd9VV78xV+cY8eOAXDbbbfxAz/wA/xLHvzgB/M+7/M+AFy8eJHf+I3f4H6v8AqvAMB99913K1ddddVVV111FQDl+PHjXHXVVVddddVV8OZv/uYfvVwuj//N3/wNj370o7n55ptZLBb83d/9HZKQhCSe9rSncfHiRV78xV+chz3sYTzsYQ/jL/7iL5AEgCQkIQkASUgCYL1e8zd/8zf89V//NfP5nAc/+ME8+MEP5lGPehTXXXcd9957L+v1GgBJAKzXa570pCfxt3/7t6zXa44fP86xY8e45ZZbeMQjHsEjHvEIAO677z6uuup/MklIQhKSkIQkJCEJSUhCEpKQhCT+r5CEJCQhCUlIQhKSkIQk/id59Vd/dV7iJV6CN3uzN+NBD3oQ8/mcvb09/vqv/5qf+qmf4o477mC9XvOv9aqv+qq86Zu+KY94xCOYz+dcunSJ3/zN3+TXf/3X+Zc8+MEP5n3e530AePrTn87Xf/3Xs1wusc3LvdzL8Rqv8Rr88R//MU9+8pO/5+zZs7dy1VVXXXXVVVehBz3oQVx11VVXXXXVVfATP/ETfvzjH8+XfdmXce211/JFX/RFnD9/nq/92q/l4sWLRASSiAgkcfLkST7kQz6EEydOcPHiRb71W7+V3d1dJCEJSQBIQhIAkgCQhCSOHz/Oa7/2a/NSL/VSAOzu7vKMZzyD3/u93+PSpUvcTxIAkgB40IMexEu8xEvwEi/xEtzv0qVL3H777fz93/89t99+O1f9z2Kbq/5r2eb/Mtv8Zzh27Bgv8RIvwau/+qvzQH/6p3/K3t4eT3jCE7ANgG3uZxsA2wDYBsA2ANvb27zYi70Yr/qqr8r9Ll26xN///d/z+7//+wDYxja2AbCNbWxjm9d8zdfktV/7tQH4q7/6K37yJ3+SzMQ2mckHfMAH8LCHPYzv+77v49KlS+/zW7/1W9/NVVddddVVV12FHvSgB3HVVVddddVVV8E3fdM3Pf2aa6558Pu8z/vQdR0f//EfzyMf+Uj+5E/+hB/4gR8gIpCEJCICSZw8eZIP/uAP5sSJE1y8eJFv+7ZvY3d3F0kASEISAJKQBIAkACQhiePHj/NSL/VSvNZrvRYAu7u7POMZz+Dv/u7veMYznoEkACQBIAmAY8eO8aAHPYgXf/EX55ZbbuF+ly5d4vbbb+fv//7vuf3227nq/w/bXPVvY5v/a2zzojh27Bgv8RIvwau/+qvzQPv7+zz+8Y/nz/7sz7DN/WxzP9sA2AbANgC2Adje3ubFXuzFeJVXeRXud+nSJf7wD/+Qv//7v8c2tgGwjW1sA2Ab29jmPd7jPXjwgx8MwE//9E/zl3/5l9gmM7HNy7zMy/AO7/AO/NAP/RDjOLK3t/c+v/Vbv/XdXHXVVVddddVVlOPHj3PVVVddddVVV8FDHvKQl37IQx7y0ufPn+eOO+7gKU95Cq/3eq/HxsYGv/3bv40kJCGJ+61WK/7hH/6BF3/xF+fEiRM89rGP5e6772Z3dxcASUgCQBKSAJAEgCQA1us1t912G3/7t3/LarXi0Y9+NNdddx0v+ZIvyfHjx1mtVly6dAlJ3E8S6/Wa++67j7//+7/n7//+71mv1wBce+21XHPNNbz4i784L/7iL84111zDer1mb2+Pq/5vk4QkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhif9PJCEJSUhCEpKQhCQkIQlJ/G8hCUlIQhKSkIQkjh8/zsu//Mvzru/6rrzCK7wCt9xyCwD7+/v87d/+Lb/5m7/Jn/3Zn3HnnXfyb7Gzs8Nrv/Zr80Zv9EbcfPPNANx+++38yI/8CH/0R3/Efffdx4vi+PHjvOM7viMPfvCDAfju7/5uHv/4x3M/25w4cYIP+IAPAOA7v/M7eY3XeA3uvvvun7n11lv/mquuuuqqq666inL8+HGuuuqqq6666iq49dZb/+bN3/zNP3pjY4M/+qM/YrVa8chHPpKbbrqJkydP8nd/93dIQhKSkIQkVqsVj3vc41itVrzYi70YD33oQ5nP5zz96U9HEpIAkASAJCQBIAkASQCs12ue8Yxn8Hd/93esVise9KAHce211/KSL/mSvORLviT33nsvly5dAkASAJIAWK/X3H777fz93/89f//3f896vebYsWMcO3aMa665hhd/8RfnxV/8xbnmmmtYr9fs7e1x1VX/EklIQhKSkIQkJCEJSUhCEpKQhCQkIQlJ/F8kCUlIQhKSkIQkJCEJSUjif5JbbrmFF3/xF+dd3/VdefmXf3luueUWAPb39/nbv/1bfuu3fos///M/584772QYBv4tbrrpJt7wDd+Q137t1+bMmTMA/NEf/RG/8iu/wl/+5V+yXq95UR07doz3eI/34Nprr2V3d5cf+ZEf4dZbb+WBbPNu7/ZunDhxgh/5kR/hjjvu4G3f9m259957//of/uEffoerrrrqqquuuorKVVddddVVV1112X333XfrP/zDP/z2i73Yi732ox71KJ7ylKfwC7/wC5w6dYpHPOIRvOIrviJ//ud/zvNz8eJF/uIv/gKA13/91+f1Xu/1APit3/otbCOJf43d3V1+93d/l7/927/lJV/yJXnN13xNjh07xru927tx6dIlfv7nf57bb78dANtI4oEuXbrEH/7hH/KHf/iHHDt2jBd/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2MY2tgGwjW1sYxvb2MY2tslMbGMb29jGNraxjW1sc/3117O9vc329jb3W6/X7O3tsVqtuPnmm7nffffdd+tv/dZvffdv//Zvf8999913K1ddddVVV1111VUvOvSgBz2Iq6666qqrrrrqqn+La6655sEv9mIv9tqv8zqv814v9mIv9to80+7uLn/7t3/L7/zO7yAJgOPHj3PLLbfwoAc9iJd6qZfigS5dusTu7i633XYbz3jGM7jtttuQxHOTxHOTxPMjiRdEEi+IJB5IEgDHjh0D4NixYwAcO3YMgJ2dHXZ2dpDE9vY2+/v77O3tcdddd3HnnXciCQBJAEjifpIAkASAJAAkASAJAEkASAJAEgCSkASAJAAkASAJAElIAkASkgCQhCQAJCEJSQBIQhKSkIQkJCEJSUhCEpKQhCQkIQlJRASSkIQkIgJJSCIikIQkIgJJRASSkERE0Pc9J06cYGtri42NDf4l0zTRWmO9XrNerxmGAUkASOJ+knhutrmfbQBsA2AbANvYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2Xddx4sQJrr/+eh7o3Llz9H3PbDZjNptxv/vuu+/W3/qt3/ruH/3RH/0crrrqqquuuuqqq/5t0IMe9CCuuuqqq6666qqr/r2uueaaB7/2a7/2e73TO73TZ/NMu7u7POMZz+AZz3gGf/u3f8v9jh8/zvHjx3nJl3xJXvIlX5Ln59KlS9x222084xnP4NKlS9x2220ASOK5SeL5kcTzI4kXRBLPTRIAkpAEgCQAJAEgCQBJAEgCQBL3kwSAJAAkASAJAEkASAJAEgCSAJAEgCQAJCEJAEkASAJAEgCSkASAJCQBIAlJSAJAEpKQBIAkJCEJSUhCEpKQhCQkIQlJSEISEYEkJCGJiEASkogIJCGJiEASEYEkJDGfz7n22msZxxFJALTWAJimCUlIorWGJFprSEISkgCQhCQkcT9JvChsA2AbANvYBsA2trGNbWxjG9vYxja2sY1tbGObWisbGxt0XceJEyfo+577DcOAbfb39zl9+jT3u++++279rd/6re/+7d/+7e+57777buWqq6666qqrrrrq3wc96EEP4qqrrrrqqquuuuo/yjXXXPPgF3uxF3vtF3uxF3ut13md13lvnml3d5fbbruNv/mbv+G2227jgY4dO8aDH/xgbrnlFo4dO8aDHvQgntulS5cAuO2227jtttu4dOkSt912G/eTxHOTxAsiiRdEEg8kCQBJAEgCQBIAkpAEgCQAJHE/SQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSkASAJAAkASAJSQBIAmBra4trr70WgKOjI86ePYskACQhCUlIAkASkpCEJCQhCUlIQhKSkIQkIgJJSEISEYEkJBERSEISEYEkIgJJSCIikEREIAlJRASSkEREIAlJSCIikIQkACQhCUlIAkASAJL4l9jmfraxDYBtbANgG9vYxja2sY1tbFNrZT6fU2tlY2ODjY0NHmgYBgAODg4AOHnyJA9033333fqjP/qjn/Nbv/Vb381VV1111VVXXXXVfxz0oAc9iKuuuuqqq6666qr/DNdcc82DX+zFXuy1X+d1Xue9XuzFXuy1eabd3V1uu+02/vZv/5ZnPOMZAEjifseOHQPgQQ96EA960IM4duwYt9xyC8/t0qVL3HbbbVy6dInbb7+d2267jecmiRdEEi+IJO4nCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASAJIAkASAJAAkASAJAEkASAJAEpIAkASAJAAkIQmAhz3sYQBsbm6ytbUFwOHhIZI4Ojri7NmzHB0dIQlJSAJAEpKQhCQkIQlJSEISkogIJCEJSUgiIpCEJCICSUgiIpCEJCICSUQEkogIJBERSEISEYEkJBERSEISkpCEJCQhCUlIAkASkrifJF4Y2wDYBsA2ALaxjW0AbGObUgqbm5vYZj6fs1gseH7GcWQYBoZhoO97Njc3eaD77rvv1t/6rd/67h/90R/9HK666qqrrrrqqqv+c6AHPehBXHXVVVddddVVV/1nu+aaax782q/92u/14i/+4q/9Yi/2Yq/NM126dIlnPOMZPOMZz+Dv/u7veG6SADh27BjHjh3j2LFjvORLviS33HILz8+lS5e47bbbuP3227l06RK33XYbknh+JPHCSAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASAJIAkASAJCQBIAkASQBIQhIAkgCQhCQkASAJSQBIQhKSkIQkACQhCUlIQhKSkIQkIgJJSEISkogIJCEJSUQEkogIJCGJiEASEYEkIgJJRASSkEREIImIQBKSkEREIAlJSEISkpAEgCQkASCJ+0ni+bHN/WwDYBvb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7Ngxjh07BsDOzg7PbW9vj8c97nHceeed3HnnnUgCQBIAkgCQBIAkJAEgCQBJAEgCQBIAkgCQBIAkACQhCQBJAEhCEgCSAJCEJAAkIQlJAEhCEpKQBIAkJCEJSUhCEpKQhCQkIYmIQBKSkEREIAlJRASSkEREIImIQBIRQUQgiYhAEhGBJCICSfR9z8bGBl3XceLECV4UrTUyk3EckcQ4jrTWAJDEA0UEEUGtlVortVae23333Xfr2bNnb/37v//73/6Hf/iH3/mHf/iH3+aqq6666qqrrrrqfxf0oAc9iKuuuuqqq6666qr/7a655poHv9iLvdhrv9iLvdhrvdiLvdhrX3PNNQ/muVy6dInbbruN22+/nUuXLnH77bfz/EjigSQBIAlJABw7dgyAY8eOAbCzs4MkdnZ2ALjzzjvZ399nf38fAEkASAJAEgCSkASAJAAkASAJAEkASAJAEgCSkASAJAAkIQkASQBIQhKSAJCEJAAkIQlJSEISAJKQhCQkIQlJSEISkogIJCEJSUQEkpBERCAJSUQEkogIJBERSCIikEREEBFIYjabcezYMTY3N1ksFjy3aZqQBEBrDYBxHMlM1us1AJKQhCQAJBERAPR9D0CtlVorz+2+++679R/+4R9++7777rv1H/7hH37nH/7hH36bq6666qqrrrrqqv/d0IMe9CCuuuqqq6666qqr/q+55pprHvxiL/Zir/1iL/Zir3XNNdc8+MVe7MVem+fj0qVL3H777dx2221cunSJvb099vb2eCBJAEgCQBKSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkJAEgCQBJAEgCQBIAkgCQhCQAJAEgCUkASEISAJKQBIAkJCEJAElIQhKSkASAJCQhCUlIQhKSiAgkIQlJRASSkIQkIgJJRASSiAgkERFIIiKQREQgiYjgxIkTSGKaJiTRWkMSmYkkIgJJRASSkIQkJCEJSUiilEIphVorpRQiglorz899991362/91m9999mzZ5/xW7/1W9/NVVddddVVV1111f896EEPehBXXXXVVVddddVV/9ddc801DwZ4sRd7sdd+sRd7sde65pprHvxiL/Zir83zcenSJfb29rh06RK33347e3t7XLp0if39fQAkASAJSQBIAkASAJIAkASAJAAkASAJAEkASEISAJIAkASAJAAkASAJAElIAkASAJKQBIAktra2ANja2uLaa68FYHNzk7Nnz3J0dMTR0RFHR0dIQhKSkIQkJAEgCUlIIiKQhCQkIQlJRASSkEREIAlJRASSiAgkERFIIiKICCQREUgiIogIJBERSCIikEREIImIQBKS6LqOUgp93yOJruvouo4X5L777rv1t37rt74b4B/+4R9+5x/+4R9+m6uuuuqqq6666qr/+9CDHvQgrrrqqquuuuqqq/4/uuaaax4M8GIv9mKv/WIv9mKvdc011zz4xV7sxV6bF2Bvbw+A22+/HYA77riDvb099vf32d/fB0ASAJIAkASAJAAkASAJAEkASAJAEpIAkASAJAAkASAJSQBIAkASAJKQBIAktra2ANja2kISm5ubSALg6OgIgHPnziEJSUhCEpKQhCQkIQlJSEISkpCEJCICSUgiIpCEJCICSUQEkogIJBERSCIiiAgkERFIIiKICCQREXRdR9/31Frpuo5aK7VW+r7nBbnvvvtuPXv27K1///d//9sA//AP//A7//AP//DbXHXVVVddddVVV/3/hB70oAdx1VVXXXXVVVddddWzXXPNNQ8+c+bMg6+55poHv9iLvdhrXXPNNQ8+c+bMg6+55poH8wLs7e0BsLe3x/7+Pnt7e+zv77O/vw/AXXfdBYAkACQBIAkASQBIQhIAkgCQBIAkACQhCQBJAEgCQBKSAJCEJAAkIQkASUhCEpIAkIQkJCEJSUhCEpKQhCQkIQlJSCIikIQkJBERSEISEYEkIgJJRAQRgSQigtlsRkQwm83o+56+75HExsYGXddRa+WFue+++249e/bsrX//93//2wD/8A//8Dv/8A//8NtcddVVV1111VVXXfVA6EEPehBXXXXVVVddddVVV/3LrrnmmgcDvNiLvdhrAXqxF3ux17rmmmsefObMmQdfc801D+ZfsL+/D8De3h4HBwcA7O/vs7+/jyT29/c5ODhAEvv7+0gCQBIAkgCQhCQAJAEgCUkASAJAEpIAkIQkJAEgCUlIAkASkpCEJCQhCUlIQhKSkIQkJBERSEISkogIFosFklgsFkhiPp8zn8+RxGw2YzabMZvN6PueF8V99913K8A//MM//PZ9991369mzZ2+97777nvEP//APv81VV1111VVXXXXVVS8K9KAHPYirrrrqqquuuuqqq/59zpw58yBJOnPmzIOvueaaB585c+ZB11xzzYOvueaaB585c+bB11xzzYP5V9rf3wdAEvv7+0hif38fSdzv4OAAgMPDQyTxQJI4PDwEQBKSkMT9JCEJSWxsbCAJAElIYmNjAwBJAGxsbCAJgI2NDQDm8zmSmM/n/Fvcd999t549e/bW++6779b77rvvVoB/+Id/+B2Af/iHf/htrrrqqquuuuqqq67690IPetCDuOqqq6666qqrrrrqP98111zzYNu+5pprHnLNNdc8GODMmTMPuuaaax4McM011zz4zJkzDwa45pprHswLcN999916zTXXPJj/ge67775bAc6ePXsrwH333XfrfffddyvA2bNnn3Hffffdet999z397Nmzz+Cqq6666qqrrrrqqv8K6EEPehBXXXXVVVddddVVV/3Pc8011zyYZzpz5syDAV9zzTUP4ZnOnDnzIJ7pmmuueTDPxzXXXPNgXgT33XffrTyX++6771Ye4OzZs8/gme67776nAzp79uytAPfdd9+tXHXVVVddddVVV131PxF60IMexFVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Slauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/Ff8IHrNRArOlV2UAAAAASUVORK5CYII=) +![Rendered example of helix 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAALZQ0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqr/se55pprHswznTlz5sE80zXXXPNgnunMmTMP4pmuueaaB/NM11xzzYN5pjNnzjwY4Jprrnkwz/R2b/d24qqrrrrqqquuuuqq/y+oXHXVVVddddVVV131b3bNNdc8GODMmTMPPnv27K0v9mIv9to805kzZx7EM11zzTUP5pmuueaaB/NMZ86ceTDANddc82Cuuuqqq6666qqrrrrqPx6Vq6666qqrrrrqqque5ZprrnkwwJkzZx4McM011zz4zJkzDwK45pprHnzNNdc8GODMmTMPvuaaax7Mf5L77rvvVp7p7Nmzt/JM9913360803333Xcrz3T27Nln8Ez33XffrTzT2bNnbwW47777buWqq6666qqrrrrqqv+PqFx11VVXXXXVVVf9H3bNNdc8GODMmTMPvuaaax585syZB/FM11xzzYOvueaaBwO82Iu92Gvzb3DffffdCnD27NlbAe67775beab77rvvVp7p7Nmzz+CZ7rvvvlt5prNnz97KM9133323ctVVV1111VVXXXXVVf+xqFx11VVXXXXVVVf9L3PNNdc8+MyZMw++5pprHnzmzJkH8UzXXHPNg6+55poHnzlz5sHXXHPNg/k3uO+++24FOHv27K0A991336333XffrQBnz559xn333XcrwNmzZ2+97777buWqq6666qqrrrrqqqv+Z6Ny1VVXXXXVVVdd9T/MNddc82CAF3uxF3vtM2fOPAjgxV/8xV/7zJkzD77mmmsezL/CfffddyvA2bNnb73vvvtuBbjvvvtuBTh79uwz7rvvvlsBzp49e+t99913K1ddddVVV1111VVXXfV/C5Wrrrrqqquuuuqq/2LXXHPNgwHOnDnz4Bd7sRd7LYAXf/EXf22AF3uxF3tt/gX33XffrWfPnr31vvvuu/W+++67lWc6e/bsM+67775bz549e+t99913K1ddddVVV1111VVXXXUVlauuuuqqq6666qr/BNdcc82Dz5w58+BrrrnmwWfOnHnQNddc8+BrrrnmwS/2Yi/22vwL7rvvvlsB/uEf/uG377vvvlsB/uEf/uF3zp49e+t99913K1ddddVVV1111VVXXXXVi4rKVVddddVVV1111b/BNddc82CAF3uxF3vtM2fOPAjgxV/8xV/7zJkzD77mmmsezL/gvvvuu/Xs2bO3/v3f//1vA/zDP/zD7wD8wz/8w29z1VVXXXXVVVddddVVV/1HoXLVVVddddVVV131L7jmmmse/GIv9mKvfebMmQe9+Iu/+Gu/2Iu92GvzL7jvvvtuPXv27K333Xffrffdd9+tZ8+efcZ999136z/8wz/8NlddddVVV1111VVXXXXVfxUqV1111VVXXXXVVQ9wzTXXPPi1X/u13wvgxV/8xV/7xV7sxV6b5+O+++67FeAf/uEffvu+++67FeAf/uEffufs2bO33nfffbdy1VVXXXXVVVddddVVV/1PQOWqq6666qqrrvp/6ZprrnnwmTNnHvxiL/ZirwXw4i/+4q/9Yi/2Yq/N83Hffffdevbs2Vv//u///rf/4R/+4Xf+4R/+4be56qqrrrrqqquuuuqqq/43oHLVVVddddVVV/2fd8011zz4zJkzD36xF3ux13rxF3/x136xF3ux1+YFuO+++279h3/4h9++7777bv2Hf/iH3/mHf/iH3+aqq6666qqrrrrqqquu+t+KylVXXXXVVVdd9X/KNddc8+AXe7EXe+0zZ8486MVf/MVf+8Ve7MVemxfgvvvuu/W3fuu3vhvgH/7hH37nH/7hH36bq6666qqrrrrqqquuuur/EipXXXXVVVddddX/Wtdcc82Dz5w58+AXe7EXe60Xf/EXf+0Xe7EXe22ej/vuu+/Ws2fP3vr3f//3vw3wD//wD7/zD//wD7/NVVddddVVV1111VVXXfV/HZWrrrrqqquuuup/lWuuuebBr/3ar/1eL/7iL/7aL/ZiL/baPJf77rvv1rNnz97693//97/9D//wD7/zD//wD7/NVVddddVVV1111VVXXfX/FZWrrrrqqquuuup/tGuuuebBr/3ar/1e11xzzYNf53Ve5715Lvfdd9+tv/Vbv/Xd//AP//A7//AP//DbXHXVVVddddVVV1111VVXPRuVq6666qqrrrrqf5RrrrnmwWfOnHnwi73Yi73W67zO67z3Nddc82Ae4L777rv1t37rt7777Nmzz/it3/qt7+aqq6666qqrrrrqqquuuuoFo3LVVVddddVVV/23u+aaax782q/92u/14i/+4q/9Yi/2Yq/NA9x33323nj179ta///u//+0f/dEf/Ryuuuqqq6666qqrrrrqqqtedFSuuuqqq6666qr/ctdcc82DX/u1X/u9XvzFX/y1X+zFXuy1eS733Xffrb/1W7/13f/wD//wO//wD//w21x11VVXXXXVVVddddVVV/3bULnqqquuuuqqq/7TXXPNNQ9+sRd7sdc+c+bMg97pnd7ps3ku9913362/9Vu/9d3/8A//8Dv/8A//8NtcddVVV1111VVXXXXVVVf9x6By1VVXXXXVVVf9p7nmmmse/I7v+I6f9Tqv8zrvzQPcd999t/7Wb/3WdwP86I/+6Odw1VX/gmuuuebBPNOZM2cezDNdc801DwY4c+bMg3iAa6655sEA11xzzYN5pjNnzjyYf4VrrrnmwfwPcN99993KA5w9e/ZWgPvuu+9WHuC+++67FeDs2bPP4AHuu+++W3mms2fP3soz3Xfffbdy1VVXXXXVVVdd9X8fetCDHsRVV1111VVXXfUf55prrnnwa7/2a7/XO73TO302D3Dffffd+lu/9Vvf/du//dvfc999993KVf/nXHPNNQ/mmc6cOfNgnumaa655MMCZM2cexANcc801Dwa45pprHswznTlz5sE80zXXXPNgrvpPd999993KA5w9e/ZWnum+++67lWe67777bj179uwzAO67775bz549e+t99913K1ddddVVV1111VX/s6EHPehBXHXVVVddddVV/37v+I7v+Fkv/uIv/tov9mIv9to803333Xfrb/3Wb333j/7oj34OV/2vdM011zwY4MyZMw++5pprHnzmzJkHAVxzzTUPvuaaax4M8GIv9mKvzX+y++6771ae6ezZs7fyTPfdd9+tAPfdd9+tPMDZs2efAXDffffdyjOdPXv2Vv4V7rvvvlv5H+Caa655MM905syZB/NM11xzzYN5gDNnzjwI4JprrnkwD3DNNdc8mGc6c+bMg3mma6655sH8B7jvvvtuBTh79uyt9913360A9913361nz559BsB9991369mzZ2+97777buWqq6666qqrrrrqvx560IMexFVXXXXVVVdd9W9zzTXXPPi1X/u13+ud3umdPpsH+JEf+ZHP/od/+Iff+Yd/+Iff5qr/ca655poHA5w5c+bB11xzzYPPnDnzIIBrrrnmwddcc82DAV7sxV7stflXuu+++27lmc6ePXsrz3TffffdCnDffffdygOcPXv2GQD33XffrTzT2bNnb+WZ7rvvvlu56j/dNddc82Ae4MyZMw/mma655poH80xnzpx50DXXXPNggGuuuebBZ86cefA111zzYP4V7rvvvlsBzp49e+t99913K8B9991369mzZ59x33333Qpw9uzZW++7775bueqqq6666qqrrvqPgR70oAdx1VVXXXXVVVe96K655poHv/Zrv/Z7vc7rvM57X3PNNQ/mme67775bf+u3fuu7f/RHf/RzuOq/3DXXXPNggDNnzjz4mmuuefCZM2ceBHDNNdc8+JprrnnwmTNnHnzNNdc8mH+l++6771aAs2fP3nrffffdet99990KcPbs2Wfcd999twKcPXv21vvuu+9Wrvp/6ZprrnkwwJkzZx58zTXXPBjgzJkzD7rmmmsefM011zwY4MyZMw++5pprHsy/wn333XcrwNmzZ2+97777br3vvvtuPXv27DPuu+++W//hH/7ht7nqqquuuuqqq6560aAHPehBXHXVVVddddVV/7Jrrrnmwa/92q/9Xu/0Tu/02TzTfffdd+tv/dZvffdv//Zvf8999913K1f9p7nmmmsefObMmQe/2Iu92GsBvPiLv/hrnzlz5sHXXHPNg/lXuu+++24FOHv27K333Xffrffdd9+tAGfPnn3GfffddyvAP/zDP/w2V131H+yaa655MMCZM2cefM011zwY4MyZMw+65pprHnzNNdc8GODMmTMPvuaaax7Mv+C+++679ezZs7fed999t/7DP/zD79x33323AvzDP/zDb3PVVVddddVVV131bOhBD3oQV1111VVXXXXV83fNNdc8+LVf+7Xf63Ve53Xe+5prrnkwz3Tffffd+lu/9Vvf/aM/+qOfw1X/Ya655poHnzlz5sEv9mIv9loAL/7iL/7aZ86cefA111zzYP4F9913360AZ8+evfW+++679b777rsV4OzZs8+47777bj179uyt9913361cddX/Etdcc82DAc6cOfPga6655sEAL/ZiL/Za11xzzYNf7MVe7LV5Ae67775bAf7hH/7htwH+4R/+4Xfuu+++W//hH/7ht7nqqquuuuqqq/4/Qg960IO46qqrrrrqqque0zXXXPPgd3zHd/ys13md13lvnum+++679bd+67e++7d/+7e/57777ruVq/5NrrnmmgefOXPmwS/2Yi/2WgAv/uIv/tpnzpx58DXXXPNgXoj77rvv1rNnz97693//978N8A//8A+/c/bs2Vvvu+++W7nqqv+HrrnmmgefOXPmwddcc82DX+zFXuy1rrnmmgefOXPmwddcc82DeQHuu+++W8+ePXvrfffdd+s//MM//M59991369mzZ2+97777buWqq6666qqrrvq/Cj3oQQ/iqquuuuqqq6664pprrnnwa7/2a7/XO73TO302z/Rbv/Vb3/0P//APv/Nbv/Vb381VL5JrrrnmwWfOnHnwi73Yi70WwIu/+Iu/9pkzZx58zTXXPJgX4r777rv17Nmzt/793//9bwP8wz/8w++cPXv21vvuu+9WrrrqqhfJNddc82CAF3uxF3ttgBd7sRd7rWuuuebBL/ZiL/bavAD33XffrQD/8A//8NsA//AP//A79913363/8A//8NtcddVVV1111VX/26EHPehBXHXVVVddddVV8I7v+I6f9U7v9E6fzTP9yI/8yGf/6I/+6Odw1fN1zTXXPBjgtV/7td8L4MVf/MVf+8yZMw++5pprHswLcd9999169uzZW//+7//+twH+4R/+4XfOnj1763333XcrV1111X+qa6655sFnzpx58DXXXPPgF3uxF3uta6655sFnzpx58DXXXPNgno/77rvv1rNnz97693//97/9D//wD7/zD//wD7/NVVddddVVV131vw160IMexFVXXXXVVVf9f3bNNdc8+MM//MO/68Ve7MVeG+Af/uEffvvrv/7r3+e+++67lasuu+aaax4M8Nqv/drvdc011zz4dV7ndd6bF+K+++679ezZs7f+/d///W8D/MM//MPvAPzDP/zDb3PVVVf9j3PNNdc8GODFXuzFXvvMmTMPuuaaax58zTXXPPjFXuzFXpsHuO+++24F+Id/+Iff/od/+Iff+a3f+q3v5qqrrrrqqquu+p8OPehBD+Kqq6666qqr/j+65pprHvzar/3a7/VO7/ROnw1w33333fqjP/qjn/Nbv/Vb383/c9dcc82DX/u1X/u9AF78xV/8tV/sxV7stXku9913360Av/Vbv/XdAP/wD//wOwD/8A//8NtcddVV/ydcc801D36xF3ux136xF3ux17rmmmse/GIv9mKvzXO57777bv2Hf/iH3/6Hf/iH37nvvvtu/Yd/+Iff5qqrrrrqqquu+p8EPehBD+Kqq6666qqr/r95x3d8x896p3d6p8/mmX7kR37ks3/0R3/0c/h/6Jprrnnwi73Yi732mTNnHvTiL/7ir/1iL/Zir83zcd999936W7/1W98N8A//8A+/8w//8A+/zVVXXfX/yjXXXPPgM2fOPPjFXuzFXuvFX/zFX/vFXuzFXpvnct999936D//wD7/9D//wD79z33333foP//APv81VV1111VVXXfXfCT3oQQ/iqquuuuqqq/6/uOaaax78OZ/zOb91zTXXPBjgH/7hH37767/+69/nvvvuu5X/B6655poHnzlz5sEv9mIv9lov/uIv/tov9mIv9to8H/fdd9+t//AP//Db9913363/8A//8Dv/8A//8NtcddVVVz2Xa6655sEAL/ZiL/baL/ZiL/Zar/M6r/PePJf77rvv1rNnz97693//97/9D//wD7/zD//wD7/NVVddddVVV131Xwk96EEP4qqrrrrqqqv+r7vmmmse/I7v+I6f9Tqv8zrvDXDffffd+vVf//Xv8w//8A+/zf9R11xzzYMBXvu1X/u9rrnmmge/zuu8znvzfNx33323nj179ta///u//+1/+Id/+J1/+Id/+G2uuuqqq/6Nrrnmmge/2Iu92Gu/2Iu92Gtdc801D36xF3ux1+YB7rvvvlsBfvRHf/Rz7rvvvlv/4R/+4be56qqrrrrqqqv+M6EHPehBXHXVVVddddX/Ze/4ju/4We/0Tu/02TzTj/zIj3z2j/7oj34O/8dcc801D37t137t9wJ48Rd/8dd+sRd7sdfmudx33323AvzWb/3Wd589e/YZv/Vbv/XdXHXVVVf9J7rmmmse/GIv9mKv/WIv9mKvdc011zz4xV7sxV6bB7jvvvtu/a3f+q3v/od/+Iff+Yd/+Iff5qqrrrrqqquu+o+GHvSgB3HVVVddddVV/1d97ud+7m+92Iu92GsD/MM//MNvf/3Xf/373Hfffbfyf8Q111zz4Nd+7dd+r9d5ndd572uuuebBPJf77rvv1t/6rd/6boB/+Id/+J1/+Id/+G2uuuqqq/4bXXPNNQ8+c+bMg1/ndV7nvV7ndV7nvXmA++6779bf+q3f+u7f/u3f/p777rvvVq666qqrrrrqqv8I6EEPehBXXXXVVVdd9X/R537u5/7Wi73Yi732fffdd+vXf/3Xv88//MM//Db/y11zzTUPPnPmzINf7MVe7LXe6Z3e6bN5gPvuu+/Ws2fP3vr3f//3v/0P//APv/MP//APv81VV1111f9g11xzzYNf7MVe7LVf7MVe7LVe53Ve5715gH/4h3/47d/6rd/6nt/6rd/6bq666qqrrrrqqn8P9KAHPYirrrrqqquu+r/mwz/8w7/rdV7ndd4b4DM/8zNf5x/+4R9+m/+lrrnmmge/9mu/9nu9+Iu/+Gu/2Iu92GvzAPfdd9+tv/Vbv/Xd//AP//A7//AP//DbXHXVVVf9L3XNNdc8+MVe7MVe+8Ve7MVe63Ve53Xem2e67777bv2Hf/iH3/6Hf/iH3/mt3/qt7+aqq6666qqrrvrXQg960IO46qqrrrrqqv9L3vEd3/Gz3umd3umzAT7zMz/zdf7hH/7ht/lf5pprrnnwa7/2a7/X67zO67z3Nddc82Ae4L777rv1t37rt777t3/7t7/nvvvuu5Wrrrrqqv9jrrnmmge/2Iu92Gu/zuu8znu92Iu92GvzTPfdd9+t//AP//Db//AP//A7v/Vbv/XdXHXVVVddddVVLwr0oAc9iKuuuuqqq676v+LFXuzFXvtzP/dzfwvgMz/zM1/nH/7hH36b/wWuueaaB585c+bBL/ZiL/Za7/RO7/TZPMB9991369mzZ2/9+7//+9/+0R/90c/hqqv+Da655poH80xnzpx5MP9LnD179laA++6771au+n/pmmuuefCLvdiLvfbrvM7rvNeLvdiLvTbPdN999936D//wD7/9W7/1W9/zD//wD7/NVVddddVVV131gqAHPehBXHXVVVddddX/BS/2Yi/22p/7uZ/7WwBf//Vf/z6/9Vu/9d38D3bNNdc8+LVf+7Xf68Vf/MVf+8Ve7MVemwe47777bv2t3/qt7/6Hf/iH3/mHf/iH3+aq/zeuueaaB/NMZ86ceTDPdM011zwY4MyZMw/iAa655poHA1xzzTUP5pnOnDnzYIBrrrnmwfwfc999993KM509e/ZWnum+++67lWe67777bj179uwzeKb77rvvVp7p7NmztwLcd999t3LV/zrXXHPNg1/7tV/7vV78xV/8tV/sxV7stXmmf/iHf/jtv//7v//tH/3RH/0crrrqqquuuuqq54Ye9KAHcdVVV1111VX/273Yi73Ya3/u537ubwH8yI/8yGf/6I/+6OfwP9A111zz4Nd+7dd+r9d5ndd572uuuebBPMB9991362/91m9992//9m9/z3333XcrV/2vcc011zwY4MyZMw++5pprHgxw5syZB/EA11xzzYMBrrnmmgfzTGfOnHkwwDXXXPNg/pPdd999t/JMZ8+evZX/Bc6cOfNgnumaa655MP9J7rvvvlt5prNnz94KcN99993KM9133323nj179hkA9913361nz5699b777ruVq/5bXXPNNQ9+7dd+7fd68Rd/8dd+sRd7sdcGuO+++2790R/90c/5rd/6re/mqquuuuqqq666H3rQgx7EVVddddVVV/1vds011zz4m77pm54O8A//8A+//Zmf+Zmvw/8w7/iO7/hZr/M6r/Pe11xzzYN5pvvuu+/Ws2fP3vr3f//3v/2jP/qjn8NV/+Ncc801DwY4c+bMg6+55poHnzlz5kEAL/7iL/7aAGfOnHnwNddc82Ae4L777rv1mmuueTD/Rvfdd9+tPNPZs2dv5Znuu+++WwHuu+++W3mAs2fPPgPgvvvuu5VnOnv27K0A99133638H3PNNdc8mGc6c+bMgwGuueaaB/MAZ86cedA111zzYJ7pmmuueTDPdObMmQcDXHPNNQ/m3+m+++67FeDs2bO33nfffbfed999t549e/YZ9913360AZ8+evfW+++67lav+073O67zOe7/jO77jZ11zzTUPBrjvvvtu/fqv//r3+Yd/+Iff5qqrrrrqqquuQg960IO46qqrrrrqqv+trrnmmgd/+Id/+He92Iu92Gv/wz/8w29/5md+5uvwP8Q111zz4Nd+7dd+r3d6p3f6bJ7pvvvuu/W3fuu3vvsf/uEffucf/uEffpur/stdc801DwY4c+bMg6+55poHnzlz5kEA11xzzYOvueaaBwO82Iu92Gvzr3DffffdCnD27Nlb77vvvlsB7rvvvlt5gLNnzz4D4L777ruVZzp79uytAPfdd9+tXPXf5pprrnkwz3TmzJkHA1xzzTUP5pnOnDnzoGuuuebBANdcc82Dz5w58+BrrrnmwbyI7rvvvlvPnj1763333XcrwD/8wz/8DsB9991369mzZ2+97777buWqf7drrrnmwa/92q/9Xq/zOq/z3tdcc82DAX7rt37ru3/0R3/0c+67775bueqqq6666qr/v9CDHvQgrrrqqquuuup/qw//8A//rtd5ndd573/4h3/47c/8zM98Hf4HuOaaax782q/92u/1Tu/0Tp/NM9133323/tZv/dZ3/+iP/ujncNV/imuuuebBAGfOnHnwNddc8+AzZ848COCaa6558DXXXPPgM2fOPPiaa655MP8K9913360AZ8+evfW+++679b777rsV4OzZs8+47777bj179uyt9913361c9f/SNddc82CAM2fOPPiaa6558JkzZx50zTXXPPiaa655MMCLvdiLvTYvovvuu+9WgLNnz95633333Xrffffdevbs2Wfcd999twL8wz/8w29z1YvkmmuuefBrv/Zrv9c7vdM7fTbAfffdd+s//MM//PaP/uiPfs599913K1ddddVVV131/w960IMexFVXXXXVVVf9b/UTP/ETBni7t3s78d/sdV7ndd77Hd/xHT/rmmuueTDPdN999936oz/6o5/zW7/1W9/NVf9u11xzzYPPnDnz4Bd7sRd7LYAXf/EXf+0zZ848+Jprrnkw/wr33XffrWfPnr31vvvuu/W+++67FeDs2bPPuO+++24F+Id/+Iff5qqr/gNcc801DwY4c+bMg6+55poHA7zYi73YawFcc801Dz5z5syDr7nmmgfzQtx33323XnPNNQ++7777bv2Hf/iH3wb4h3/4h9+57777bv2Hf/iH3+aq5+uaa6558Gu/9mu/1zu90zt9NsB9991362/91m9994/+6I9+DlddddVVV131/wt60IMexFVXXXXVVVf9b/Q6r/M67/3hH/7h3/Vbv/Vb3/31X//178N/g2uuuebBr/3ar/1er/M6r/Pe11xzzYMB7rvvvlt/67d+67t/+7d/+3vuu+++W7nqX+Waa655MMCLvdiLvfaZM2cedM011zz4mmuuefCLvdiLvTYvxH333XcrwNmzZ2+97777br3vvvtuBTh79uwz7rvvvlvPnj1763333XcrV131P9A111zzYIAzZ848+JprrnnwmTNnHnTNNdc8+JprrnkwwIu92Iu9Ns/HfffddyvAP/zDP/z2P/zDP/zOfffdd+vZs2dvve+++27lqsuuueaaB7/2a7/2e73TO73TZwPcd999t/7Wb/3Wd//oj/7o53DVVVddddVV/z+gBz3oQVx11VVXXXXV/0av8zqv894f/uEf/l2/9Vu/9d1f//Vf/z78F7rmmmse/Nqv/drv9U7v9E6fzTPdd999t/7Wb/3Wd//oj/7o53DVv+iaa6558JkzZx78Yi/2Yq8F8OIv/uKv/WIv9mKvzQtx33333Xr27Nlb//7v//63Af7hH/7hd86ePXvrfffddytXXfV/2DXXXPNggBd7sRd77TNnzjzommuuefA111zz4Bd7sRd7bZ6P++6779azZ8/eet999936D//wD79z33333foP//APv83/Y9dcc82DP/zDP/y7XuzFXuy1Ae67775bf+u3fuu7f/RHf/RzuOqqq6666qr/29CDHvQgrrrqqquuuup/ow//8A//rtd5ndd576//+q9/n9/6rd/6bv4LvNiLvdhrv87rvM57vc7rvM5780z33XffrT/6oz/6Ob/1W7/13Vz1PK655poHv9iLvdhrnzlz5kHXXHPNg6+55poHv9iLvdhr80Lcd999t/7DP/zDb9933323nj179hn33Xffrf/wD//w21x11VXP4ZprrnkwwIu92Iu99ou92Iu91jXXXPPgF3uxF3ttXoD77rvv1rNnz95633333foP//APv3Pffffd+g//8A+/zf8jL/ZiL/ba7/RO7/RZL/ZiL/ba9913363/8A//8Ntf//Vf/z5cddVVV1111f9d6EEPehBXXXXVVVdd9b/Rh3/4h3/X67zO67z313/917/Pb/3Wb303/0muueaaB7/2a7/2e73O67zOe19zzTUPBrjvvvtu/a3f+q3v/u3f/u3vue+++27l/7lrrrnmwQAv9mIv9tpnzpx50Iu/+Iu/9pkzZx58zTXXPJgX4L777rv17Nmzt/793//9bwP8wz/8w++cPXv21vvuu+9Wrrrqqn+Xa6655sFnzpx58DXXXPPgF3uxF3uta6655sEv9mIv9tq8APfdd9+t//AP//DbAL/1W7/1Pf/wD//w2/wf9zqv8zrv/eEf/uHfBfBbv/Vb3/31X//178NVV1111VVX/d+EHvSgB3HVVVddddVV/xt90zd909OvueaaB3/Ih3zIQ+67775b+U/wju/4jp/1Oq/zOu99zTXXPBjgvvvuu/W3fuu3vvtHf/RHP4f/x6655poHv/Zrv/Z7vfiLv/hrnzlz5sHXXHPNg3kB7rvvvlvPnj1769///d//NsA//MM//M4//MM//DZXXXXVf7lrrrnmwS/2Yi/22gAv9mIv9lrXXHPNg1/sxV7stXmA++6779Zrrrnmwffdd9+t//AP//Dbv/Vbv/U9//AP//Db/B90zTXXPPibvumbng7wIz/yI5/9oz/6o5/DVVddddVVV/3fgx70oAdx1VVXXXXVVf8b/cRP/IQBPuRDPuQh99133638B7rmmmse/OEf/uHf9WIv9mKvDXDffffd+qM/+qOf81u/9Vvfzf8z11xzzYPPnDnz4Bd7sRd7rRd/8Rd/7Rd7sRd7bZ7LfffddyvAP/zDP/z2fffdd+vZs2efcd999936D//wD7/NVVdd9T/aNddc82CAF3uxF3vtF3uxF3uta6655sEv9mIv9to8wH333Xfr2bNnb/37v//73/6Hf/iH3/mHf/iH3+b/iGuuuebB3/RN3/R0gB/5kR/57B/90R/9HK666qqrrrrq/xb0oAc9iKuuuuqqq6763+gnfuInDPB2b/d24j/QO77jO37WO73TO302wH333Xfr13/917/PP/zDP/w2/09cc801D37t137t9wJ4ndd5nfe+5pprHsxzue+++279rd/6re8G+NEf/dHP4aqrrvo/5ZprrnnwmTNnHvxiL/Zir/XiL/7ir/1iL/Zir80D3Hfffbf+wz/8w2//wz/8w+/cd999t/7DP/zDb/O/2DXXXPPgb/qmb3o6wI/8yI989o/+6I9+DlddddVVV131fwd60IMexFVXXXXVVVf9b/NiL/Zir/25n/u5v/UP//APv/2Zn/mZr8N/gGuuuebBH/7hH/5dL/ZiL/baAL/1W7/13V//9V//Pvwfd8011zz4tV/7td/rxV/8xV/7xV7sxV6b53Lffffdevbs2Vv//u///rf/4R/+4Xf+4R/+4be56qqr/l+55pprHvxiL/Zir/1iL/Zir3XNNdc8+MVe7MVemwe47777bv2Hf/iH3/6Hf/iH37nvvvtu/Yd/+Iff5n+Z13md13nvD//wD/8ugB/5kR/57B/90R/9HK666qqrrrrq/wYqV1111VVXXfW/0DXXXPNggPvuu+9W/gO84zu+42e90zu902cD3Hfffbd+/dd//fv8wz/8w2/zf8w111zz4DNnzjz4xV7sxV7rxV/8xV/7xV7sxV6b53Lffffd+g//8A+/fd999936D//wD7/zD//wD7/NVVdd9f/afffdd+t999333b/1W7/13QDXXHPNg1/sxV7stV/sxV7stV7ndV7nva+55poHX3PNNe/9Oq/zOu8NcN999936D//wD7/9D//wD7/zW7/1W9/N/wK/9Vu/9d0AH/7hH/5d7/RO7/TZAD/6oz/6OVx11VVXXXXV/37oQQ96EFddddVVV131v80111zz4M/5nM/5LYAP+ZAPeQj/Rtdcc82DP/zDP/y7XuzFXuy1AX7rt37ru7/+67/+ffg/4pprrnnwa7/2a78XwOu8zuu89zXXXPNgnst9991362/91m99N8CP/uiPfg5XXXXVVf9K11xzzYNf7MVe7LVf7MVe7LVe53Ve5715Lvfdd9+t//AP//Dbv/Vbv/U9//AP//Db/A/2Oq/zOu/94R/+4d8F8CM/8iOf/aM/+qOfw1VXXXXVVVf974Ye9KAHcdVVV1111VX/21xzzTUP/vAP//DverEXe7HX/q3f+q3v/vqv//r34V/pHd/xHT/rnd7pnT4b4L777rv167/+69/nH/7hH36b/8WuueaaB7/2a7/2e734i7/4a7/Yi73Ya/Nc7rvvvlsBfuu3fuu7/+Ef/uF3/uEf/uG3ueqqq676D3TNNdc8GOC1X/u13+vFX/zFX/vFXuzFXpsH+Id/+Iffvu+++279rd/6re/5h3/4h9/mf6DXeZ3Xee8P//AP/y6Ar//6r3+f3/qt3/purrrqqquuuup/L/SgBz2Iq6666qqrrvrf6JprrnnwN33TNz0d4DM/8zNf5x/+4R9+mxfBNddc8+AP//AP/64Xe7EXe22A3/qt3/rur//6r38f/pe65pprHvzar/3a7/XiL/7ir/1iL/Zir80D3Hfffbf+wz/8w2/fd999t/7DP/zD7/zDP/zDb3PVVVdd9V/ommuuefCZM2ce/GIv9mKv9eIv/uKv/WIv9mKvzTPdd999t/7Wb/3Wd//oj/7o5/A/zOu8zuu894d/+Id/1z/8wz/89md+5me+DlddddVVV131vxd60IMexFVXXXXVVVf9b/U6r/M67/3hH/7h33Xffffd+lmf9Vmvc999993KC/GO7/iOn/VO7/ROnw1w33333fr1X//17/MP//APv83/Mtdcc82DX/u1X/u9XvzFX/y1X+zFXuy1eab77rvv1t/6rd/6boAf/dEf/Ryuuuqqq/6Hueaaax782q/92u/1Tu/0Tp/NM9133323/sM//MNv/9Zv/db3/MM//MNv8z/EN33TNz39mmuuefCHfMiHPOS+++67lauuuuqqq6763wk96EEP4qqrrrrqqqv+N/vcz/3c33qxF3ux1/6t3/qt7/76r//69+H5uOaaax78ju/4jp/1Oq/zOu8N8Fu/9Vvf/fVf//Xvw/8i11xzzYNf+7Vf+71e53Ve572vueaaB/NM9913362/9Vu/9d1nz559xm/91m99N1ddddVV/wtcc801D36xF3ux136d13md93qxF3ux1+aZ7rvvvlt/67d+67t/+7d/+3vuu+++W/lv9Lmf+7m/9WIv9mKv/Zmf+Zmv8w//8A+/zVVXXXXVVVf974Qe9KAHcdVVV1111VX/m11zzTUP/qZv+qanA3z913/9+/zWb/3Wd/NcPvdzP/e3zpw582CAr//6r3+ff/iHf/ht/he45pprHvzar/3a7/U6r/M6733NNdc8mGe67777bv2t3/qt7z579uwzfuu3fuu7uer/jWuuuebBPNOZM2ceDHDNNdc8GODMmTMP4gGuueaaBwNcc801D+aZzpw582D+hzt79uytPNN99913K89033333Qpw9uzZZwDcd999t/JMZ8+evfW+++67lav+V7rmmmse/Nqv/drv9Tqv8zrvfc011zwY4L777rv1H/7hH377t37rt77nH/7hH36b/wYf/uEf/l2v8zqv895f//Vf/z6/9Vu/9d1cddVVV1111f9O6EEPehBXXXXVVVdd9b/d67zO67z3h3/4h3/Xfffdd+tnfdZnvc599913K8/0uZ/7ub/1Yi/2Yq9933333fohH/IhD+F/uGuuuebBr/3ar/1er/M6r/Pe11xzzYN5pvvuu+/W3/qt3/rus2fPPuO3fuu3vpur/se75pprHswznTlz5sEA11xzzYMBzpw58yAe4JprrnkwwDXXXPNgnunMmTMPBrjmmmsezFUvsvvuu+9Wnuns2bO3Atx333238kz33XffrQBnz559BsB99913K8909uzZWwHuu+++W7nqv9w111zz4Bd7sRd77Rd7sRd7rdd5ndd5b57pvvvuu/W3fuu3vvu3f/u3v+e+++67lf8i7/iO7/hZ7/RO7/TZP/IjP/LZP/qjP/o5XHXVVVddddX/TuhBD3oQV1111VVXXfV/wed+7uf+1ou92Iu99j/8wz/89md+5me+DsCLvdiLvfbnfu7n/hbAZ37mZ77OP/zDP/w2/wNdc801D37t137t93qd13md977mmmsezDPdd999t/7Wb/3Wd//DP/zD7/zDP/zDb3PVf7trrrnmwWfOnHnwNddc8+AzZ848COCaa6558DXXXPPgM2fOPPiaa655MP+J7rvvvlt5prNnz94KcN99990KcN99993KA5w9e/YZAPfdd9+tPNPZs2dv5X+BM2fOPBjgmmuueTDPdObMmQcBXHPNNQ8GuOaaax7MM505c+bB11xzzYP5D3bffffdCnD27Nlb77vvvlvvu+++W8+ePfuM++6779azZ8/eet99993KVf8prrnmmge/9mu/9nu9+Iu/+Gu/2Iu92GvzTP/wD//w27/1W7/1Pb/1W7/13fwne7EXe7HX/tzP/dzf+od/+Iff/szP/MzX4aqrrrrqqqv+d0IPetCDuOqqq6666qr/C6655poHf9M3fdPTAb7+67/+fe67775bP/dzP/e3AD7zMz/zdf7hH/7ht/kf5Jprrnnwa7/2a7/X67zO67z3Nddc82Ce6b777rv1t37rt777H/7hH37nH/7hH36bq/5LXHPNNQ8GOHPmzINf7MVe7LUArrnmmgdfc801DwZ4sRd7sdfmX+m+++67lWc6e/bsrQD33XffrQD33XffrTzA2bNnnwFw33333coznT179laA++6771auepFdc801D+aZzpw582CAa6655sE805kzZx4EcM011zwY4Jprrnkwz3TmzJkHX3PNNQ/mX+G+++679ezZs7fed999twL8wz/8w+/cd999twL8wz/8w29z1b/bNddc8+B3fMd3/KzXeZ3XeW+e6b777rv1R3/0Rz/nt37rt76b/yTXXHPNg7/pm77p6ffdd9+tH/IhH/IQrrrqqquuuup/J/SgBz2Iq6666qqrrvq/4nVe53Xe+8M//MO/67777rv1mmuueTDAj/zIj3z2j/7oj34O/0O84zu+42e9+Iu/+Gu/2Iu92GvzTPfdd9+tv/Vbv/Xd//AP//A7//AP//DbXPUf5pprrnkwwJkzZx58zTXXPPjMmTMPAnjxF3/x1wZ4sRd7sdfmX+G+++679ezZs7fed999t9533323Apw9e/YZ9913361nz5699b777ruVq/5PuOaaax7MM505c+bB11xzzYNf7MVe7LUArrnmmgefOXPmwddcc82D+Rfcd999twKcPXv21vvuu+/Wf/iHf/gdgPvuu+/Ws2fP3nrffffdylUvkmuuuebBL/ZiL/bar/M6r/NeL/ZiL/baAPfdd9+tv/Vbv/XdP/qjP/o5/Ae75pprHvxN3/RNTwd4u7d7O3HVVVddddVV/zuhBz3oQVx11VVXXXXV/yWf+7mf+1sv9mIv9toA9913360f8iEf8hD+m11zzTUPfu3Xfu33eqd3eqfP5pnuu+++W3/rt37ru//hH/7hd/7hH/7ht7nqX+2aa655MMCLvdiLvfaZM2ceBHDNNdc8+JprrnnwmTNnHnzNNdc8mBfRfffddyvA2bNnb73vvvtuve+++249e/bsM+67775bAf7hH/7ht7nqqufjmmuuefCZM2cefM011zwY4MVe7MVe65prrnkwwIu92Iu9Ni+C++6779azZ8/eet99990K8A//8A+/c999990K8A//8A+/zVXP45prrnnwh3/4h3/Xi73Yi702wH333XfrZ33WZ73Offfddyv/gT73cz/3t17sxV7stT/zMz/zdf7hH/7ht7nqqquuuuqq/33Qgx70IK666qqrrrrq/5LP/dzP/a0Xe7EXe22e6b777rv1sz7rs17nvvvuu5X/Ytdcc82DX/u1X/u93umd3umzeab77rvv1h/90R/9nN/6rd/6bq56kVxzzTUPBnixF3ux1z5z5syDXvzFX/y1X+zFXuy1eRHcd999twKcPXv21vvuu+/W++6771aAs2fPPuO+++679ezZs7fed999t3LVVf9JrrnmmgcDvNiLvdhrA7zYi73YawFcc801Dz5z5syDr7nmmgfzQtx33323AvzDP/zDb//DP/zD79x33323/sM//MNvc9Vl7/iO7/hZr/M6r/Pe11xzzYPvu+++W3/rt37ru3/0R3/0c/gP8k3f9E1PB/iQD/mQh3DVVVddddVV/zuhBz3oQVx11VVXXXXV/xUv9mIv9tqf+7mf+1sAP/IjP/LZr/M6r/Pe11xzzYPvu+++W3/rt37ru3/0R3/0c/gvcM011zz4tV/7td/rnd7pnT6bZ7rvvvtu/fqv//r3+Yd/+Iff5qrn65prrnkwwIu92Iu99pkzZx704i/+4q/9Yi/2Yq/NC3DffffdCvAP//APv33ffffdCnD27Nln3HfffbeePXv21vvuu+9Wrrrqf7hrrrnmwQBnzpx58DXXXPPgM2fOPOiaa6558DXXXPPgM2fOPPiaa655MM/lvvvuuxXgH/7hH377H/7hH37nvvvuu/Uf/uEffpv/p6655poHv/Zrv/Z7vdM7vdNnA9x33323/uiP/ujn/NZv/dZ38+/wuZ/7ub/1Yi/2Yq/9D//wD7/9mZ/5ma/DVVddddVVV/3vhB70oAdx1VVXXXXVVf8XvNiLvdhrf+7nfu5vAXzmZ37m6/zDP/zDb19zzTUPfu3Xfu33eqd3eqfPBrjvvvtu/dEf/dHP+a3f+q3v5j/BNddc8+DXfu3Xfq93eqd3+mye6R/+4R9+++u//uvf57777ruVq57lmmuuefCLvdiLvfaZM2ce9OIv/uKvfebMmQdf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p3d6p8/mAf7+7//+t++7775bueqqq6666qr/e9CDHvQgrrrqqquuuup/s9d5ndd57w//8A//rt/6rd/67q//+q9/H/6Nrrnmmgd/+Id/+He92Iu92GsD/MiP/Mhn/+iP/ujnAFxzzTUPfu3Xfu33evEXf/HXfrEXe7HX5pnuu+++W//hH/7ht3/rt37re/7hH/7ht/lvds011zz4tV/7td/rnd7pnT6b53Lffffd+lu/9VvfDfCjP/qjn8NVV1111X+wa6655sEv9mIv9tov9mIv9lqv8zqv8948wG/91m9993333Xfrb//2b3/Pfffddyv/xa655poHv/Zrv/Z7vdM7vdNn80w/8iM/8tlnz559xod/+Id/13333Xfrj/7oj37Ob/3Wb303V1111VVXXfV/C3rQgx7EVVddddVVV/1v9uEf/uHf9Tqv8zrv/fVf//Xv81u/9Vvfzb/B67zO67z3h3/4h38XwH333Xfr13/917/PP/zDP/w2z8c111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bZ7pvvvuu/W3fuu3vvsf/uEffucf/uEffpv/Itdcc82DX/u1X/u9Xud1Xue9r7nmmgfzTPfdd9+tv/Vbv/XdAD/6oz/6OVx11VVX/Re65pprHnzmzJkHv9iLvdhrvfiLv/hrv9iLvdhrA9x33323/sM//MNv/9Zv/db3/MM//MNv81/gHd/xHT/rnd7pnT6bZ/qHf/iH3/76r//697nvvvtuBXjHd3zHz3qnd3qnz77vvvtu/fqv//r3+Yd/+Iff5qqrrrrqqqv+70APetCDuOqqq6666qr/zT78wz/8u17ndV7nvb/+67/+fX7rt37ru/lX+vAP//Dvep3XeZ33BviHf/iH3/7Mz/zM1+FFdM011zz4tV/7td/rdV7ndd77mmuueTDPdN999936W7/1W9/927/9299z33333cp/sGuuuebBr/3ar/1eL/7iL/7aL/ZiL/baPNN9991362/91m9992//9m9/z3333XcrV/2fcc011zyYZzpz5syDeaZrrrnmwQBnzpx5EM90zTXXPBjgmmuueTDPdObMmQcDXHPNNQ/mX+m+++67lf9iZ8+evRXgvvvuuxXgvvvuu/Xs2bPP4Jnuu+++WwHOnj1763333XcrV/2Pd8011zz4Hd/xHT/rdV7ndd6bZ7rvvvtu/dEf/dHP+a3f+q3v5j/Bi73Yi732h3/4h3/XNddc82CA++6779av//qvf59/+Id/+G2eyzu+4zt+1ju90zt99n333XfrZ33WZ73OfffddytXXXXVVVdd9X8DetCDHsRVV1111VVX/W/2ju/4jp/1Tu/0Tp/9mZ/5ma/zD//wD7/Ni+iaa6558Od8zuf81jXXXPNggB/5kR/57B/90R/9HP4NrrnmmgefOXPmwa/zOq/zXq/zOq/z3jzAfffdd+tv/dZvffeP/uiPfg7/Ti/2Yi/22q/zOq/zXq/zOq/z3jzAj/zIj3z22bNnn/Fbv/Vb381V/yNcc801D+aZzpw582CAa6655sE805kzZx7EM11zzTUPBrjmmmsezDOdOXPmwQDXXHPNg7nqRXLffffdyjOdPXv2VoD77rvvVoD77rvv1rNnzz6DZ7rvvvtuBTh79uyt9913361c9V/mmmuuefBrv/Zrv9frvM7rvPc111zzYID77rvv1t/6rd/67t/+7d/+nvvuu+9W/p2uueaaB3/4h3/4d73Yi73YawPcd999t/7oj/7o5/zWb/3Wd/MCXHPNNQ/+8A//8O96sRd7sde+7777bv2QD/mQh3DVVVddddVV/zegBz3oQVx11VVXXXXV/2av8zqv894f/uEf/l333XffrR/yIR/yEF4E7/iO7/hZ7/RO7/TZAPfdd9+tX//1X/8+//AP//Db/Ae45pprHvxiL/Zir/1iL/Zir/U6r/M6780z3XfffbeePXv21t/6rd/6nt/6rd/6bl5E11xzzYNf+7Vf+73e6Z3e6bN5gPvuu+/W3/qt3/ruH/3RH/0crvovc8011zwY4MyZMw++5pprHnzmzJkHXXPNNQ++5pprHnzmzJkHX3PNNQ/mP8F99913K8909uzZW3mm++6771aA++6771ae6ezZs88AuO+++27lmc6ePXsrwH333Xcr/0rXXHPNg/kvdubMmQcDXHPNNQ8GOHPmzIOuueaaB/NM11xzzYMBzpw58+BrrrnmwfwHuO+++27lmc6ePXsrwH333XcrwD/8wz/8zn333Xfr2bNnb73vvvtu5ap/t2uuuebBL/ZiL/bar/M6r/NeL/ZiL/baAPfdd9+t//AP//Dbv/Vbv/U9//AP//Db/Ctdc801D/7wD//w73qxF3ux1wa47777bv2t3/qt7/7RH/3Rz+FFcM011zz4cz7nc34L4Ed/9Ec/57d+67e+m6uuuuqqq6763w896EEP4qqrrrrqqqv+N7vmmmse/OEf/uHf9WIv9mKv/Vu/9Vvf/fVf//XvwwvxuZ/7ub/1Yi/2Yq8N8CM/8iOf/aM/+qOfw3+Sa6655sEv9mIv9tov9mIv9lqv8zqv894803333XfrP/zDP/z2P/zDP/zOb/3Wb303z+Waa6558Gu/9mu/1zu90zt9Ng9w33333fpbv/Vb3/2jP/qjn8NV/+GuueaaBwOcOXPmwS/2Yi/2WgDXXHPNg6+55poHnzlz5sHXXHPNg3kR3XfffbfyTGfPnr0V4L777ruVZ7rvvvtu5ZnOnj37DID77rvvVp7p7NmztwLcd999t3LVi+Saa655MM905syZBwNcc801DwY4c+bMg6655poH80zXXHPNgwHOnDnz4GuuuebB/Cvcd999twKcPXv21vvuu+/Wf/iHf/gdgPvuu+/Wf/iHf/htrvpXu+aaax78ju/4jp/1Oq/zOu/NM9133323/uiP/ujn/NZv/dZ38y+45pprHvzar/3a7/VO7/ROnw1w33333fpbv/Vb3/2jP/qjn8O/0ju+4zt+1ju90zt99o/8yI989o/+6I9+DlddddVVV131vx960IMexFVXXXXVVVf9b3fNNdc8+Ju+6Zueft9999369V//9e/zD//wD7/N8/GO7/iOn/VO7/ROn33ffffd+vVf//Xv8w//8A+/zX+Ra6655sEv9mIv9tqv8zqv814v9mIv9to803333XfrP/zDP/z2b/3Wb33Pi73Yi73W67zO67z3Nddc82Ce6b777rv1t37rt777t3/7t7/nvvvuu5Wr/k2uueaaBwOcOXPmwS/2Yi/2WgDXXHPNg6+55poHnzlz5sHXXHPNg3kR3HfffbcCnD179tb77rvv1vvuu+9WgH/4h3/4HYB/+Id/+G2u+l/pmmuueTDPdObMmQdfc801DwY4c+bMg6655poHX3PNNQ8+c+bMg6+55poH80Lcd999twL8wz/8w28D/MM//MPv3HfffbeePXv21vvuu+9WrnqBrrnmmge/9mu/9nu90zu902fzTPfdd9+tv/Vbv/XdP/qjP/o5PMA111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bZ7pR37kRz77R3/0Rz+Hf6MXe7EXe+3P/dzP/a1/+Id/+O3P/MzPfB2uuuqqq6666n8/9KAHPYirrrrqqquu+r/gHd/xHT/rnd7pnT77vvvuu/VDPuRDHsJzebEXe7HX/tzP/dzfAvjMz/zM1/mHf/iH3+a/yTXXXPPgF3uxF3vtd3zHd/ysa6655sE8H/fdd9+tv/Vbv/XdP/qjP/o5XPVCXXPNNQ8GeLEXe7HXPnPmzIMArrnmmgdfc801Dz5z5syDr7nmmgfzIrjvvvtuBTh79uyt991336333XffrWfPnn3Gfffdd+vZs2dvve+++27lqv/3rrnmmgcDnDlz5sHXXHPNg1/sxV7stQCuueaaB7/Yi73Ya/MvuO+++249e/bsrffdd9+t9913361nz559xn333Xfr2bNnb73vvvtu5SquueaaB7/2a7/2e73O67zOe19zzTUPBrjvvvtu/Yd/+Iffvu+++259ndd5nfe+5pprHswD/NZv/dZ3/+iP/ujn3Hfffbfy7/BiL/Zir/25n/u5v/UP//APv/2Zn/mZr8NVV1111VVX/e+HHvSgB3HVVVddddVV/xdcc801D/6cz/mc37rmmmse/PVf//Xv81u/9VvfzQN80zd909OvueaaB//Ij/zIZ//oj/7o5/Df6Jprrnnwa7/2a7/Xi7/4i7/2i73Yi702L8R99913K8A//MM//PY//MM//M5999136z/8wz/8Nv9PXXPNNQ9+7dd+7fcCePEXf/HXfrEXe7HX5kVw33333Qpw9uzZW//+7//+twHOnj37jPvuu+/Ws2fP3nrffffdylVX/Qe45pprHnzmzJkHX3PNNQ8GeLEXe7HXuuaaax585syZB19zzTUP5oW47777bgX4h3/4h9++7777bj179uwz7rvvvlv/4R/+4bf5f+iaa6558Od8zuf81jXXXPNgnst9991362/91m99N8CP/uiPfg7/Qa655poHf9M3fdPT77vvvls/5EM+5CFcddVVV1111f9+6EEPehBXXXXVVVdd9X/Fi73Yi732537u5/7Wfffdd+tnfdZnvc599913K8Dnfu7n/taLvdiLvfY//MM//PZnfuZnvg7/Ta655poHv/Zrv/Z7vdM7vdNn80z33Xffrb/1W7/13T/6oz/6Oddcc82DAV7sxV7stV/sxV7sta655poHv9iLvdhr81zuu+++W8+ePXvrfffdd+s//MM//M4//MM//PZ99913K/+HXHPNNQ8+c+bMg1/sxV7sta655poHX3PNNQ9+sRd7sdfm+bjvvvtuBTh79uytf//3f//bAGfPnn3Gfffdd+vZs2dvve+++27lqqv+B7jmmmseDHDmzJkHX3PNNQ9+sRd7sdcCuOaaax78Yi/2Yq/NC3Dffffdevbs2Vvvu+++W3/rt37re/7hH/7ht/k/6pprrnnwa7/2a7/X67zO67z3Nddc82Ae4L777rv1mmuueTDAfffdd+tv/dZvffeP/uiPfg7/wX7iJ37CAG/3dm8nrrrqqquuuup/P/SgBz2Iq6666qqrrvq/5HM/93N/68Ve7MVe+7d+67e+++u//uvf53Ve53Xe+8M//MO/C+BDPuRDHnLffffdyn+xa6655sGv/dqv/V7v9E7v9Nk80z/8wz/89td//de/z3333XcrL8Q111zz4DNnzjz4mmuuefCLvdiLvdaLvdiLvfY111zzYJ7Lfffdd+s//MM//PZ999136z/8wz/8zj/8wz/8Nv9LXHPNNQ9+7dd+7fcCePEXf/HXfrEXe7HX5gW47777bv2Hf/iH377vvvtu/Yd/+Iff+Yd/+Iff5qqr/o+45pprHgzwYi/2Yq8N8GIv9mKv9WIv9mKvfc011zyY53Lffffd+g//8A+//Q//8A+/c9999936D//wD7/N/0LXXHPNg1/sxV7stc+cOfOgd3qnd/psHuC+++679ezZs7f+/d///W//6I/+6OcAXHPNNQ9+7dd+7fd6p3d6p88G+Id/+Iff/vqv//r3ue+++27lP8jnfu7n/taLvdiLvfZnfuZnvs4//MM//DZXXXXVVVdd9b8betCDHsRVV1111VVX/V9yzTXXPPibvumbng7w9V//9e/z4R/+4d8F8Jmf+Zmv8w//8A+/zX+ha6655sGv/dqv/V7v9E7v9Nk80z/8wz/89td//de/z3333Xcr/0bXXHPNg1/sxV7stc+cOfOgF3/xF3/tF3uxF3ttno/77rvv1n/4h3/47X/4h3/4nfvuu+/Wf/iHf/ht/htdc801Dz5z5syDX+zFXuy1rrnmmgdfc801D36xF3ux1+b5uO+++249e/bsrX//93//2wD/8A//8Dv/8A//8NtcddX/Q9dcc82DX+zFXuy1X+zFXuy1rrnmmge/2Iu92GvzXO67775bAf7hH/7ht//hH/7hd+67775b/+Ef/uG3+R/ommuuefBrv/Zrv9eLv/iLv/aLvdiLvTYPcN999936W7/1W9/9D//wD7/zD//wD7/NC/CO7/iOn/VO7/ROnw1w33333fpbv/Vb3/2jP/qjn8N/gM/93M/9rRd7sRd77c/8zM98nX/4h3/4ba666qqrrrrqfzf0oAc9iKuuuuqqq676v+Z1Xud13vvDP/zDv4tn+od/+Iff/szP/MzX4b/QO77jO37WO73TO302z3Tffffd+vVf//Xv8w//8A+/zX+Ca6655sEv9mIv9tov9mIv9lrXXHPNg1/sxV7stXku9913360A//AP//Db//AP//A79913363/8A//8Nv8B7vmmmseDPDar/3a7wXw4i/+4q/9Yi/2Yq/NC3Dffffd+g//8A+/fd999936D//wD7/zD//wD7/NVVdd9UJdc801D36xF3ux136xF3ux17rmmmse/GIv9mKvzXO57777bj179uytf//3f//b//AP//A7//AP//Db/Dd5sRd7sdd+sRd7sdd6p3d6p8/mudx33323/tZv/dZ3//Zv//b33HfffbfyIrrmmmse/Nqv/drv9U7v9E6fDfBbv/Vb3/2jP/qjn3Pffffdyr/Dh3/4h3/X67zO67z3j/zIj3z2j/7oj34OV1111VVXXfW/G3rQgx7EVVddddVVV/1fc8011zz4wz/8w7/rxV7sxV4b4O3e7u3Ef5F3fMd3/Kx3eqd3+mye6b777rv167/+69/nH/7hH36b/0LXXHPNgwFe7MVe7LVf7MVe7LWuueaaB7/Yi73Ya/Nc7rvvvlvPnj1763333XfrP/zDP/zOP/zDP/z2fffddyv/Ctdcc82DX+zFXuy1X+zFXuy1XuzFXuy1r7nmmgfzfNx33323nj179ta///u//22Af/iHf/idf/iHf/htrrrqqn+3a6655sFnzpx58DXXXPPgF3uxF3ut13md13lvno/77rvv1n/4h3/47X/4h3/4nfvuu+/Wf/iHf/ht/hNcc801D37t137t93rxF3/x136xF3ux1+YB7rvvvlt/67d+67vPnj37jN/6rd/6bv6d3vEd3/Gz3umd3umzAe67775bf+u3fuu7f/RHf/Rz+Dd6x3d8x896p3d6p8/+kR/5kc/+0R/90c/hqquuuuqqq/53Qw960IO46qqrrrrqqv9rXuzFXuy1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13/9+/B8XHPNNQ/+8A//8O96sRd7sdcG+JEf+ZHP/tEf/dHP4YW45pprHvzhH/7h3/ViL/Zirw3wIz/yI5/9oz/6o5/D/zIv9mIv9tov9mIv9lov/uIv/tov9mIv9to8wH333Xfrb/3Wb303wI/+6I9+Dv/BrrnmmgcDnDlz5sHXXHPNg1/sxV7stQCuueaaB585c+bB11xzzYP5F9x33323AvzDP/zDbwP8wz/8w+8A3Hfffbf+wz/8w29z1VX/T11zzTUPPnPmzINf7MVe7LUAXvzFX/y1X+zFXuy1eSHuu+++W8+ePXvr3//93/82wD/8wz/8zj/8wz/8Ni/ANddc8+DXfu3Xfq8Xf/EXf+0Xe7EXe22e6b777rv1H/7hH377H/7hH37nt37rt76b/4GuueaaB7/2a7/2e73TO73TZ9933323fsiHfMhDeC6f+7mf+1sv9mIv9tq/9Vu/9d1f//Vf/z5cddVVV1111f8d6EEPehBXXXXVVVdd9X/F67zO67z3h3/4h3/Xb/3Wb33313/9178PL8Q7vuM7ftY7vdM7fTbAfffdd+tv/dZvffeP/uiPfg7P5ZprrnnwN33TNz0d4L777rv167/+69/nH/7hH36b/wWuueaaB7/2a7/2e734i7/4a7/Yi73Ya/MA9913361nz5699e///u9/+7d/+7e/57777ruV/0bXXHPNgwHOnDnz4GuuuebBZ86cedA111zz4GuuuebBZ86cefA111zzYP4F9913360AZ8+evfW+++679b777rv17Nmzz7jvvvtuPXv27K333XffrVx11f8i11xzzYMBzpw582CAa6655sFnzpx5EM/04i/+4q/9Yi/2Yq/NC3Hffffd+g//8A+/fd9999169uzZZ9x33323/sM//MNv8+9wzTXXPPi1X/u13+vFX/zFX/vFXuzFXptnuu+++279h3/4h9/+h3/4h9/5rd/6re/mf5BrrrnmwR/+4R/+XS/2Yi/22r/1W7/13V//9V//PjzTO77jO37WO73TO332fffdd+uHfMiHPISrrrrqqquu+r8FPehBD+Kqq6666qqr/q94x3d8x896p3d6p8/+kR/5kc/+0R/90c/hX3DNNdc8+MM//MO/68Ve7MVeG+BHfuRHPvtHf/RHP4dnep3XeZ33/vAP//DvAviHf/iH3/7Mz/zM1+F/uGuuuebBr/3ar/1er/M6r/Pe11xzzYN5gPvuu+/W3/qt3/ruf/iHf/idf/iHf/ht/pe55pprHnzmzJkHX3PNNQ8GeLEXe7HXuuaaax4M8GIv9mKvzYvgvvvuu/Xs2bO33nfffbfyTPfdd9+tAGfPnn0GwH333Xcrz3T27NlbAe67775b+V/immuueTDPdObMmQcDXHPNNQ8GOHPmzIN4gLNnzz6D/wT33Xffrfw7nD179tb77rvvVv6PuOaaax7MM505c+bB11xzzYPPnDnzIJ7pmmuuefA111zzYIAzZ848+Jprrnkw/wr33XffrQD/8A//8Nv33Xffrf/wD//wO2fPnr31vvvuu5X/ZNdcc82DX+zFXuy1X+d1Xue9XuzFXuy1eab77rvv1rNnz976W7/1W9/zW7/1W9/N/wDXXHPNg7/pm77p6QA/8iM/8tk/+qM/+jnXXHPNg7/pm77p6QCf+Zmf+Tr/8A//8NtcddVVV1111f8t6EEPehBXXXXVVVdd9X/Fh3/4h3/X67zO67z313/917/Pb/3Wb303L4Jrrrnmwa/92q/9Xu/0Tu/02QD33XffrV//9V//Pi/2Yi/2Wu/0Tu/02QC/9Vu/9d1f//Vf/z78D3bNNdc8+LVf+7Xf653e6Z0+m2e67777bv2t3/qt7wb40R/90c/h/7hrrrnmwQBnzpx58DXXXPPgF3uxF3stgGuuuebBZ86cefA111zzYP6d7rvvvlt5prNnz94KcN99993KM9133323Apw9e/YZPNN99913K8DZs2dvBbjvvvtu5blcc801D+aZzpw582CAa6655sEAZ86ceRDPdM011zwY4Jprrnkwz3TmzJkHX3PNNQ/m/6j77rvvVoCzZ8/eet99993KM9133323nj179hkA9913360AZ8+evfW+++67lf9E11xzzYMBzpw58+BrrrnmwQBnzpx5EMA111zz4GuuuebBAGfOnHnwNddc82D+He67775bAc6ePXsrwH333XfrfffddyvP9A//8A+/8w//8A+/zf8Q11xzzYNf7MVe7LVf53Ve571e7MVe7LV5pvvuu+/W3/qt3/ru3/7t3/6e++6771b+G73O67zOe3/4h3/4d9133323fv3Xf/37vNM7vdNnvdiLvdhr/9Zv/dZ3f/3Xf/37cNVVV1111VX/96AHPehBXHXVVVddddX/FR/+4R/+Xa/zOq/z3l//9V//Pr/1W7/13fwrXHPNNQ/+nM/5nN+65pprHswDfP3Xf/37/NZv/dZ38z/QNddc8+DXfu3Xfq/XeZ3Xee9rrrnmwTzTfffdd+uP/uiPfs5v/dZvfTdXPcs111zzYJ7pxV7sxV6bZzpz5syDAK655poHA1xzzTUP5pnOnDnzYIBrrrnmwfwvcd99993KM509e/ZWgPvuu+9WgPvuu+9WHuCaa655MP8Jrrnmmgfz73DmzJkHX3PNNQ/m3+G+++67FeDs2bO3Atx33323Atx33323nj179hkA991336080zXXXPPgM2fOPIhnuuaaax58zTXXPBjgzJkzD77mmmsezL/RfffddyvPdPbs2Vvvu+++W++7775beaazZ88+47777rsV4OzZs7fed999t/K/3DXXXPPgF3uxF3vt13md13mvF3uxF3ttgPvuu+/W3/qt3/ru3/7t3/6e++6771b+m7zjO77jZ73TO73TZ/NM9913360f8iEf8hCuuuqqq6666v8m9KAHPYirrrrqqquu+r/icz/3c3/rxV7sxV77Mz/zM1/nH/7hH36bf6UXe7EXe+3P/dzP/S2e6b777rv167/+69/nH/7hH36b/0Fe53Ve571f7MVe7LVe53Ve5715pvvuu+/W3/qt3/ruH/3RH/0crvoPdc011zwY4MyZMw9+sRd7sde65pprHnzNNdc8+MVe7MVem/9B7rvvvlt5prNnz94KcN99993KM9133323Apw9e/YZZ86ceRD/wa655poH8x/ommuuefCZM2cezDNdc801D+Z/gPvuu+9WgLNnz95633333Qpw33333Qpw9uzZZ9x33323Apw9e/ZWgPvuu+9W/p+75pprHvyO7/iOn/U6r/M67w1w33333foP//APv/2jP/qjn3Pffffdyn+xa6655sGf8zmf81vXXHPNgwE+8zM/83X+4R/+4be56qqrrrrqqv+b0IMe9CCuuuqqq6666v+Kb/qmb3r6Nddc8+AP+ZAPech99913K/8KL/ZiL/ban/u5n/tbAP/wD//w22fOnHnwNddc8+D77rvv1t/6rd/67n/4h3/4nX/4h3/4bf6bXHPNNQ9+7dd+7fd6p3d6p8/mAX7kR37ks8+ePfuM3/qt3/purvo3ueaaax585syZB19zzTUPPnPmzIMAXvzFX/y1AV7sxV7stXkR3HfffbcCnD179tb77rvv1vvuu+9Wnuns2bPPALjvvvtuBTh79uytPJczZ848mGe65pprHswznTlz5kHXXHPNg3mma6655sE805kzZx4McM011zyYq/7V7rvvvlsBzp49e+uZM2ceDHDNNdc8mH/BfffddyvAP/zDP/w2wD/8wz/8zn333Xfr2bNnb73vvvtu5aoX6JprrnnwO77jO37W67zO67w3wH333XfrP/zDP/z2b/3Wb33PP/zDP/w2/wWuueaaB3/O53zOb11zzTUP5pl+5Ed+5LN/9Ed/9HO46qqrrrrqqv+b0IMe9CCuuuqqq6666v+Kn/iJnzDAh3zIhzzkvvvuu5UX0Tu+4zt+1ju90zt9NsBv/dZvfffXf/3Xv88111zz4Nd+7dd+r9d5ndd572uuuebBAPfdd9+tv/Vbv/XdP/qjP/o5/Be45pprHvzar/3a7/U6r/M6733NNdc8mGe67777bv2t3/qt7/7RH/3Rz+GqF+qaa655MMCZM2ce/GIv9mKvBXDNNdc8+JprrnnwmTNnHnzNNdc8mBfBfffdd+vZs2dvve+++2697777bj179uwz7rvvvlvPnj1763333Xcr/wNcc801D+aZzpw582CAa6655sE805kzZx4EcM011zz4vvvuu5X/YGfPnn0G/4Huu+++W/kPdPbs2VsB7rvvvlt5Ia655poH80wv9mIv9toAL/ZiL/Za11xzzYPPnDnz4GuuuebBvAD33XffrQD/8A//8NsA//AP//A79913361nz5699b777ruVqy675pprHvzar/3a7/VO7/ROn80z/dZv/dZ3/9Zv/db3/MM//MNv85/gmmuuefBrv/Zrv9c7vdM7fTbAfffdd+uP/uiPfs6Hf/iHfxfA13/917/Pb/3Wb303V1111VVXXfV/D3rQgx7EVVddddVVV/1f8RM/8RMGeLu3ezvxIrjmmmse/OEf/uHf9WIv9mKvDfD1X//17/Nbv/Vb380DXHPNNQ9+7dd+7fd6p3d6p8/mme67775b/+Ef/uG3f+u3fut7/uEf/uG3+Q92zTXXPPi1X/u13+ud3umdPptnuu+++279rd/6re/+7d/+7e+57777buWqZ7nmmmse/GIv9mKvfebMmQcBvPiLv/hrA7zYi73Ya/MiuO+++24F+Id/+Iffvu+++24F+Id/+IffAfiHf/iH3+aqqx7gmmuueTDAi73Yi702wIu92Iu91jXXXPPgM2fOPPiaa655MC/AfffddyvAP/zDP/w2wD/8wz/8zn333Xfr2bNnb73vvvtu5f+ha6655sGv/dqv/V7v9E7v9Nk803333Xfr13/917/PP/zDP/w2/0He8R3f8bPe6Z3e6bN5ph/5kR/57B/90R/9HIDXeZ3Xee8P//AP/6777rvv1s/6rM96nfvuu+9Wrrrqqquuuur/FvSgBz2Iq6666qqrrvq/4JprrnnwN33TNz39vvvuu/VDPuRDHsK/4Jprrnnw53zO5/zWNddc8+D77rvv1q//+q9/n3/4h3/4bV6Aa6655sEv9mIv9tqv8zqv814v9mIv9to803333Xfrb/3Wb333b//2b3/Pfffddyv/Rtdcc82DX/u1X/u9Xud1Xue9r7nmmgfzTPfdd9+tv/Vbv/XdP/qjP/o5/D93zTXXPBjgtV/7td8L4MVf/MVf+8Ve7MVemxfivvvuuxXg7Nmzt/793//9bwOcPXv2Gffdd9+tZ8+evfW+++67lauu+g9yzTXXPBjgxV7sxV4b4MVe7MVe65prrnnwi73Yi702L8R99913K8A//MM//DbAb/3Wb30PwD/8wz/8Nv8PXHPNNQ9+7dd+7fd6p3d6p8/mme67775bf/RHf/Rzfuu3fuu7+Te65pprHvzhH/7h3/ViL/Zirw3wD//wD7/99V//9e9z33333coDfPiHf/h3vc7rvM57/9Zv/dZ3f/3Xf/37cNVVV1111VX/t6AHPehBXHXVVVddddX/Bddcc82DP+dzPue3AD7rsz7rde67775beSG+6Zu+6enXXHPNg//hH/7htz/zMz/zdfhXuOaaax782q/92u/1Oq/zOu99zTXXPBjgvvvuu/Xs2bO3/tZv/db3/NZv/dZ386/w4R/+4d/1Oq/zOu/NM9133323/tZv/dZ3//Zv//b33Hfffbfy/9A111zz4DNnzjz4xV7sxV7rmmuuefA111zz4Bd7sRd7bZ6P++6779Z/+Id/+O377rvvVoB/+Id/+B2Af/iHf/htrrrqf4hrrrnmwQAv9mIv9toAL/ZiL/Za11xzzYNf7MVe7LV5Ae67775b/+Ef/uG3/+Ef/uF37rvvvlv/4R/+4bf5P+yaa6558Gu/9mu/1+u8zuu89zXXXPNggPvuu+/WH/3RH/2c3/qt3/puXkTXXHPNg1/7tV/7vd7pnd7pswHuu+++W3/0R3/0c37rt37ru3k+rrnmmgd/0zd909MB3u7t3k5cddVVV1111f8t6EEPehBXXXXVVVdd9X/F537u5/7Wi73Yi732b/3Wb33313/9178PL8Dnfu7n/taLvdiLvfY//MM//PZnfuZnvg7/Di/2Yi/22q/zOq/zXq/zOq/z3jzTfffdd+s//MM//PZv/dZvfc8//MM//DbPxzXXXPPgD//wD/+uF3uxF3ttnum+++679Ud/9Ec/57d+67e+m/9HrrnmmgefOXPmwS/2Yi/2Wi/+4i/+2i/2Yi/22rwA9913362/9Vu/9d0A//AP//A7//AP//DbXHXV/3LXXHPNg8+cOfPga6655sFnzpx50DXXXPPg13md13lvnst9991369mzZ2+97777bv2t3/qt7/mHf/iH3+b/oGuuuebBr/3ar/1er/M6r/Pe11xzzYMB7rvvvlt/67d+67t/9Ed/9HN4IV7ndV7nvT/8wz/8u3imH/mRH/nsH/3RH/0c/gXf9E3f9PRrrrnmwR/yIR/ykPvuu+9Wrrrqqquuuur/DvSgBz2Iq6666qqrrvq/4pprrnnwN33TNz39vvvuu/Xrv/7r3+cf/uEffpvn8mIv9mKv/bmf+7m/BfAhH/IhD7nvvvtu5T/ANddc8+AXe7EXe+3XeZ3Xea8Xe7EXe22e6b777rv1t37rt777R3/0Rz8H4Jprrnnwa7/2a7/XO73TO302wH333Xfrb/3Wb333j/7oj34O/w9cc801Dz5z5syDX+zFXuy1XvzFX/y1X+zFXuy1eT7uu+++WwF+67d+67sB/uEf/uF3/uEf/uG3ueqq/0euueaaB7/Yi73Ya7/Yi73Ya11zzTUPfrEXe7HX5rncd999t/7DP/zDb//DP/zD7/zDP/zDb99333238n/ENddc8+AXe7EXe+13fMd3/KxrrrnmwQD/8A//8Ntf//Vf/z733XffrTzANddc8+AP//AP/64Xe7EXe22A++6779bP+qzPep377rvvVl4En/u5n/tbL/ZiL/ban/mZn/k6//AP//DbXHXVVVddddX/HehBD3oQV1111VVXXfV/yTu+4zt+1ju90zt99j/8wz/89md+5me+Ds/lm77pm55+zTXXPPjrv/7r3+e3fuu3vpv/BNdcc82DX/u1X/u93umd3umzeab77rvv1n/4h3/47dd5ndd5b57pR37kRz77R3/0Rz+H/6OuueaaB7/Yi73Ya585c+ZBL/7iL/7aL/ZiL/baPB/33XffrWfPnr317//+738b4B/+4R9+5x/+4R9+m6uuuuo5XHPNNQ9+sRd7sdc+c+bMg178xV/8tV/sxV7stXku9913363/8A//8Nv/8A//8Dv33Xffrf/wD//w2/wvd8011zz4xV7sxV77wz/8w78L4L777rv167/+69/nH/7hH34b4B3f8R0/653e6Z0+G+C+++679bd+67e++0d/9Ec/h3+Fz/3cz/2tF3uxF3vtr//6r3+f3/qt3/purrrqqquuuur/DvSgBz2Iq6666qqrrvq/5Jprrnnw53zO5/zWNddc8+Cv//qvf5/f+q3f+m6e6XM/93N/68Ve7MVe+x/+4R9++zM/8zNfh/9k11xzzYNf7MVe7LXf8R3f8bOuueaaB/MAv/Vbv/XdP/qjP/o599133638H3DNNdc8+LVf+7XfC+DFX/zFX/vFXuzFXpvn47777rv17Nmzt/793//9b589e/YZv/Vbv/XdXHXVVf8m11xzzYPPnDnz4GuuuebBr/M6r/NeL/ZiL/baPJf77rvv1rNnz97693//97/9D//wD7/zD//wD7/N/1LXXHPNgz/8wz/8u17sxV7ste+7775b/+Ef/uG3X+d1Xue9eaYf+ZEf+ewf/dEf/Rz+Dd7xHd/xs97pnd7ps3/kR37ks3/0R3/0c7jqqquuuuqq/zuoXHXVVVddddX/Mffdd9+tP/qjP/o5H/7hH/5d7/iO7/hZv/Vbv/XdAC/2Yi/22i/2Yi/22gA/8iM/8jn8F3md13md97rmmmseDHDffffdCnDNNdc8+HVe53Xe+3Ve53Xe+x/+4R9++7d+67e+57d+67e+m/9lrrnmmge/9mu/9nu9zuu8zntfc801D+a53HfffbeePXv21r//+7//7X/4h3/4nX/4h3/4ba666qr/MPfdd9+t9913363/8A//wG/91m99N8A111zz4Bd7sRd77Rd7sRd7rWuuuebBL/ZiL/ba11xzzYNf7MVe7LUB7rvvvlvPnj1763333Xfrb/3Wb33PP/zDP/w2/0vcd999t/7Ij/zI53z4h3/4g6+55poHX3PNNe8NcN9999369V//9e/zD//wD7/NVVddddVVV1313NCDHvQgrrrqqquuuur/mmuuuebBH/7hH/5dL/ZiL/baP/IjP/LZP/qjP/o53/RN3/T0a6655sE/8iM/8tk/+qM/+jn8J7rmmmse/I7v+I6f9Tqv8zrvDXDffffd+lu/9Vvf/aM/+qOfA/BiL/Zir/06r/M67/U6r/M6780z3Xfffbf+wz/8w2//1m/91vf8wz/8w2/zP9A111zz4Nd+7dd+L4B3eqd3+mwe4L777rv17Nmzt/793//9b//DP/zD7/zDP/zDb3PVVVf9t7vmmmse/GIv9mKv/WIv9mKvdc011zz4xV7sxV6bB7jvvvtuPXv27K2/9Vu/9T2/9Vu/9d38D3TNNdc8+LVf+7Xf63Ve53Xe+5prrnkwz+W+++679eu//uvf5x/+4R9+m3+jF3uxF3vtz/3cz/2tf/iHf/jtz/zMz3wdrrrqqquuuur/DvSgBz2Iq6666qqrrvq/6MVe7MVe+3M/93N/67777rv17Nmzt77Yi73Ya//DP/zDb3/mZ37m6/Cf5Jprrnnwa7/2a7/XO73TO302z/QjP/Ijn/2jP/qjn8Pzcc011zz4xV7sxV77dV7ndd7rxV7sxV6bZ7rvvvtu/Yd/+Iff/od/+Iffue+++279h3/4h9/mv8k111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bR7gvvvuu/W3fuu3vvsf/uEffucf/uEffpurrrrqf7xrrrnmwWfOnHnwi73Yi73Wi7/4i7/2i73Yi702z3Tffffd+g//8A+//Q//8A+/81u/9VvfzX+ja6655sGv/dqv/V6v8zqv897XXHPNg3mm++6779bf+q3f+u6zZ88+4x/+4R9++8M//MO/68Ve7MVe+7777rv1t37rt777R3/0Rz+Hf4MXe7EXe+3P/dzP/a1/+Id/+O3P/MzPfB2uuuqqq6666v8O9KAHPYirrrrqqquu+r/qwz/8w7/rdV7ndd6bZ/rMz/zM1/mHf/iH3+Y/wTu+4zt+1ju90zt9Ns/0Iz/yI5/9oz/6o5/Di+iaa6558Gu/9mu/1zu90zt9Ns/lvvvuu/Xs2bO33nfffbf+wz/8w+/81m/91nfzn+Saa6558Iu92Iu99pkzZx70Tu/0Tp/Nc/mHf/iH3/77v//73/7t3/7t77nvvvtu5aqrrvpf7Zprrnnwi73Yi73267zO67zXi73Yi702z3Tffffd+g//8A+//Vu/9Vvf8w//8A+/zX+Ba6655sGv/dqv/V6v8zqv897XXHPNg3mm++6779bf+q3f+u5/+Id/+J1/+Id/+G0e4Jprrnnwa7/2a7/XO73TO302wD/8wz/89td//de/z3333Xcr/wrXXHPNg7/pm77p6ffdd9+tH/IhH/IQrrrqqquuuur/DvSgBz2Iq6666qqrrvq/6pprrnnwN33TNz0d4Ed+5Ec++0d/9Ec/h/9gL/ZiL/baH/7hH/5d11xzzYMB7rvvvls/67M+63Xuu+++W/k3uuaaax78Yi/2Yq/9Yi/2Yq91zTXXPPjFXuzFXpvnct999936D//wD7/9D//wD79z33333foP//APv82/0TXXXPPg137t136vF3/xF3/tF3uxF3ttHuC+++679bd+67e++x/+4R9+5x/+4R9+m6uuuur/rGuuuebBr/3ar/1eL/7iL/7aL/ZiL/baPNN999136z/8wz/89m/91m99zz/8wz/8Nv+Brrnmmge/9mu/9nu9zuu8zntfc801D+aZ7rvvvlt/67d+67v/4R/+4Xf+4R/+4bf5F7zYi73Ya3/4h3/4d11zzTUPvu+++279+q//+vf5h3/4h9/mRXTNNdc8+Ju+6Zueft999936IR/yIQ/hqquuuuqqq/7vQA960IO46qqrrrrqqv+r3vEd3/Gz3umd3umzAe67775bP+RDPuQh/Ae55pprHvzhH/7h3/ViL/Zirw1w33333fr1X//17/MP//APv81/sGuuuebBZ86cefCLvdiLvdaLv/iLv/aLvdiLvTbP5b777rv1H/7hH377H/7hH37nvvvuu/Uf/uEffpsX4JprrnnwmTNnHvxiL/Zir/VO7/ROn81zue+++279rd/6re/+7d/+7e+57777buWqq676f+eaa6558Gu/9mu/14u/+Iu/9ou92Iu9Ns9033333fpbv/Vb3/0P//APv/MP//APv82/wTXXXPPg137t136v13md13nva6655sE803333Xfrb/3Wb333P/zDP/zOP/zDP/w2/0rXXHPNgz/8wz/8u17sxV7ste+7775bf+u3fuu7f/RHf/RzeBH9xE/8hAE+5EM+5CH33XffrVx11VVXXXXV/w3oQQ96EFddddVVV131f9GLvdiLvfbnfu7n/hbAfffdd+s111zz4K//+q9/n9/6rd/6bv6dXud1Xue9P/zDP/y7AO67775bf+u3fuu7f/RHf/Rz+C9yzTXXPBjgxV7sxV77xV7sxV7rdV7ndd6b53Lffffdevbs2Vvvu+++W//hH/7hd/7hH/7ht1/7tV/7vV78xV/8tV/sxV7stXmA++6779bf+q3f+u6zZ88+47d+67e+m6v+z7jmmmsezDOdOXPmwfw7nT179lb+je67775buep/pWuuuebBr/3ar/1er/M6r/Pe11xzzYN5pvvuu+/W3/qt3/ru3/7t3/6e++6771ZeiGuuuebBr/3ar/1e7/RO7/TZPMB9991362/91m999z/8wz/8zj/8wz/8Nv9O11xzzYNf+7Vf+73e6Z3e6bMB/uEf/uG3v/7rv/597rvvvlt5IV7sxV7stT/3cz/3t/7hH/7htz/zMz/zdbjqqquuuuqq/zvQgx70IK666qqrrrrq/6LXeZ3Xee8P//AP/67f+q3f+u5/+Id/+J13fMd3/CyA3/qt3/ruH/3RH/0c/o0+/MM//Lte53Ve570BfuRHfuSzf/RHf/Rz+B/gmmuuefCLvdiLvfaLvdiLvdY111zz4Bd7sRd7bf4FP/IjP/LZv/3bv/099913361c9T/GNddc82Ce6cyZMw8GuOaaax4McObMmQfxTNdcc82DAa655poH80xnzpx5MMA111zzYP6Xuu+++24FOHv27K333XffrQD33XffrWfPnn0GwH333XcrwNmzZ2+97777buWq/zLXXHPNg8+cOfPg13md13mv13md13lvHuAf/uEffvu3fuu3vue3fuu3vptnuuaaax782q/92u/1Tu/0Tp/NA9x33323/tZv/dZ3/8M//MPv/MM//MNv85/gxV7sxV77wz/8w7/rmmuuefBv/dZvfffXf/3Xvw8vxDd90zc9/Zprrnnw13/917/Pb/3Wb303V1111VVXXfV/B3rQgx7EVVddddVVV/1f9E3f9E1Pv+aaax78mZ/5ma/zD//wD7/9Oq/zOu/94R/+4d8F8CM/8iOf/aM/+qOfw7/S537u5/7Wi73Yi702wGd+5me+zj/8wz/8Nv8DXXPNNQ/+8A//8O96sRd7sdfmhbjvvvtu/Yd/+Iff/od/+Iffue+++279h3/4h9/mqn+Xa6655sEAZ86ceTDANddc82CAM2fOPIhnuuaaax4McM011zwY4MyZMw8GuOaaax7Mf7D77rvvVp7p7Nmzt/LvdObMmQfzb3TNNdc8mP8k9913360AZ8+evfW+++67FeC+++679ezZs88AuO+++24FOHv27K333XffrVz173bNNdc8+MVe7MVe+8Ve7MVe63Ve53Xem2e67777bv2Hf/iH336d13md9+YB7rvvvlt/67d+67v/4R/+4Xf+4R/+4bf5L3DNNdc8+HM+53N+65prrnnwb/3Wb33313/9178Pz8c7vuM7ftY7vdM7ffY//MM//PZnfuZnvg5XXXXVVVdd9X8LetCDHsRVV1111VVX/V/0Td/0TU+/5pprHvwhH/IhD7nvvvtuBXjHd3zHz3qnd3qnzwa47777bv2sz/qs17nvvvtu5V9wzTXXPPjDP/zDv+vFXuzFXvu+++679eu//uvf5x/+4R9+m/9Brrnmmge/9mu/9nu9zuu8zntfc801D+aZfuRHfuSz/+Ef/uF3zp49eyvAi73Yi732i73Yi73W67zO67w3z+W+++679ezZs7fed999t/7DP/zD7/zWb/3Wd3PVc7jmmmseDPBiL/Zir33mzJkHAbz4i7/4awO82Iu92GvzH+S+++67FeDs2bO3Atx33323Atx333238gBnz559xn333Xcrz3T27NlbAe67775b+V/qmmuueTDAmTNnHnzNNdc8GODMmTMPuuaaax4McM011zwY4MyZMw++5pprHsy/0X333XcrwNmzZ2+97777buWZ/uEf/uF3AO67775bz549e+t99913K1c9j2uuuebBAK/92q/9Xtdcc82DX+d1Xue9eT7uu+++W7/+67/+ff7hH/7ht/lvcM011zz4m77pm55+33333fr1X//17/MP//APv80DvNiLvdhrf+7nfu5vAXzmZ37m6/zDP/zDb3PVVVddddVV/7egBz3oQVx11VVXXXXV/0Xf9E3f9PRrrrnmwR/yIR/ykPvuu+9Wnumaa6558Od8zuf81jXXXPPg++6779bf+q3f+u4f/dEf/RxegGuuuebB3/RN3/R0gPvuu+/Wr//6r3+ff/iHf/ht/oe45pprHvzar/3a7/VO7/ROn80z3Xfffbf+1m/91nf/6I/+6OfwQlxzzTUPfrEXe7HXfrEXe7HXuuaaax78Yi/2Yq/Nc7nvvvtu/Yd/+Iff/od/+Iffue+++279h3/4h9/m/7BrrrnmwWfOnHnwNddc8+AzZ848CODFX/zFX/vMmTMPvuaaax7Mv+C+++67FeDs2bO3Atx33323Atx333238kxnz559BsB99913K8DZs2dvBbjvvvtu5ap/k2uuuebBAGfOnHnwNddc82CAM2fOPOiaa655MMA111zzYIAzZ848+Jprrnkw/wr33XffrQD/8A//8NsA//AP//A79913363/8A//8Nv8P3HNNdc8+MyZMw9+sRd7sde65pprHvxiL/Zir33NNdc8mOfjvvvuu/W3fuu3vvvFX/zFX/vFXuzFXhvgvvvuu/W3fuu3vvtHf/RHP4f/Bu/4ju/4We/0Tu/02ffdd9+tH/IhH/IQHuBzP/dzf+vFXuzFXvu3fuu3vvvrv/7r34errrrqqquu+r8HPehBD+Kqq6666qqr/i/6iZ/4CQO83du9nXgu11xzzYNf+7Vf+73e6Z3e6bMB/uEf/uG3v/7rv/597rvvvlt5gBd7sRd77c/93M/9LYB/+Id/+O3P/MzPfB3+h3jHd3zHz3qd13md977mmmsezDPdd999t/7oj/7o5/zWb/3Wd/NvcM011zz4zJkzD36xF3ux13rxF3/x136xF3ux1+a53HfffbcCnD179tb77rvv1n/4h3/4HYD77rvv1n/4h3/4bf6Hu+aaax585syZB19zzTUPPnPmzIMAXvzFX/y1z5w58+BrrrnmwfwL7rvvvlsB/uEf/uG377vvvlsB/uEf/uF3AP7hH/7ht7nqf41rrrnmwQBnzpx58DXXXPNggDNnzjzommuueTDANddc8+AzZ848+JprrnkwL8B9991369mzZ2+97777bv2Hf/iH37nvvvtu/Yd/+Iff5n+xa6655sGv/dqv/V4AL/7iL/7aL/ZiL/bavAD33Xffrf/wD//w2/fdd9+t//AP//A7//AP//DbPMDrvM7rvPfrvM7rvNeLvdiLvTbAfffdd+tv/dZvffeP/uiPfg7/ha655poHf/iHf/h3vdiLvdhr/9Zv/dZ3f/3Xf/37ALzO67zOe3/4h3/4d9133323fsiHfMhDuOqqq6666qr/m9CDHvQgrrrqqquuuur/op/4iZ8wwNu93duJF+DFXuzFXvvDP/zDv+uaa6558H333Xfr13/917/PP/zDP/w2wOu8zuu894d/+Id/F8A//MM//PZnfuZnvg7/za655poHv/Zrv/Z7vdM7vdNn80z33Xffrb/1W7/13b/927/9Pffdd9+t/Ae65pprHgzwYi/2Yq/9Yi/2Yq/1Yi/2Yq99zTXXPJgX4r777rsV4B/+4R9+G+Af/uEffue+++679ezZs7fed999t/Kf7JprrnnwmTNnHnzNNdc8+MyZMw+65pprHnzNNdc8+MyZMw++5pprHsy/4L777rsV4B/+4R9++7777rsV4B/+4R9+B+Af/uEffpur/t+55pprHgzwYi/2Yq/9Yi/2Yq8FcM011zz4xV7sxV6bF+C+++679ezZs7fed999t/7DP/zD7wDcd999t/7DP/zDb/M/xDXXXPPgM2fOPPjFXuzFXuuaa6558DXXXPPgF3uxF3ttno/77rvv1rNnz97693//978N8A//8A+/8w//8A+/zYvodV7ndd77Hd/xHT/rmmuueTDAfffdd+uP/uiPfs5v/dZvfTf/Ra655poHf9M3fdPTAb7+67/+fX7rt37ru3/iJ37CAJ/5mZ/5Ov/wD//w21x11VVXXXXV/03oQQ96EFddddVVV131f80111zz4G/6pm96+n333Xfrh3zIhzyEF+Kaa6558Id/+Id/14u92Iu99n333Xfrb/3Wb303wDu90zt9NsCP/MiPfPaP/uiPfg7/jV7sxV7stV/ndV7nvV7ndV7nvXmm++6779bf+q3f+u4f/dEf/Rz+C11zzTUPBnixF3ux1wZ4sRd7sde65pprHgzwYi/2Yq/Nv+C+++679ezZs7fed999t9533323nj179hn33XffrWfPnr31vvvuu5UX0TXXXPNggNd+7dd+r2uuuebBL/ZiL/ba11xzzYP5F9x33323nj179tb77rvv1vvuu+9WgH/4h3/4nbNnz95633333cpVV72IrrnmmgcDvNiLvdhrA7zYi73Ya11zzTUPfrEXe7HX5gW47777bgX4h3/4h98G+Id/+Iffue+++279h3/4h9/mP9E111zz4Nd+7dd+L4AXf/EXf+0Xe7EXe21egPvuu+/Wf/iHf/jt++6779Z/+Id/+J1/+Id/+G3+A1xzzTUPfrEXe7HXfsd3fMfPuuaaax4McN999936oz/6o5/zW7/1W9/Nf4HXeZ3Xee8P//AP/6777rvv1rNnz976Yi/2Yq/9D//wD7/9mZ/5ma/DVVddddVVV/3fhR70oAdx1VVXXXXVVf/XvNiLvdhrf+7nfu5v/cM//MNvf+Znfubr8C+45pprHvzar/3a7/VO7/ROn80DfP3Xf/37/NZv/dZ389/gmmuuefBrv/Zrv9c7vdM7fTYP8CM/8iOf/du//dvfc999993K/0DXXHPNg8+cOfPga6655sEAL/ZiL/Za11xzzYPPnDnz4GuuuebBvBD33XffrQBnz5699b777rv1H/7hH34H4L777rv17Nmzt772a7/2ewG8+Iu/+Gu/2Iu92GvzfNx33323nj179tb77rvv1vvuu+/Ws2fPPuO+++679ezZs7fed999t3LVVf8FrrnmmgefOXPmwddcc82DX+zFXuy1rrnmmgefOXPmwddcc82DeQHuu+++W8+ePXvrfffdd+s//MM//M5v/dZvfTf/Stdcc82Dz5w58+AXe7EXe61rrrnmwddcc82DX+zFXuy1eT7uu+++W8+ePXvr3//93/82wD/8wz/8zj/8wz/8Nv/Jrrnmmge/9mu/9nu9zuu8zntfc801Dwa47777bv36r//69/mHf/iH3+Y/2ed+7uf+1ou92Iu9Ns/0IR/yIQ+57777buWqq6666qqr/u9CD3rQg7jqqquuuuqq/2te53Ve570//MM//Lt+67d+67u//uu//n14EVxzzTUP/vAP//DverEXe7HXBrjvvvtu/a3f+q3v/tEf/dHP4b/QNddc8+DXfu3Xfq93eqd3+mye6b777rv1t37rt777R3/0Rz+H/+WuueaaB585c+bB11xzzYPPnDnzoGuuuebB11xzzYPPnDnz4GuuuebB/Cv9wz/8w28D/MiP/Mjn/MM//MNvc9VV/4Ndc801DwZ4sRd7sdcGeLEXe7HXuuaaax78Yi/2Yq/N83Hffffd+g//8A+//Q//8A+/81u/9VvfzQNcc801D37t137t9wJ48Rd/8dd+sRd7sdfmBbjvvvtu/Yd/+Iffvu+++279h3/4h9/5h3/4h9/mv9k111zz4Nd+7dd+r9d5ndd572uuuebBAPfdd9+tX//1X/8+//AP//Db/Ce55pprHvxN3/RNTwf4h3/4h9/+zM/8zNfhqquuuuqqq/5vQw960IO46qqrrrrqqv9rXud1Xue9P/zDP/y7fuu3fuu7v/7rv/59+Bdcc801D/7wD//w73qxF3ux177vvvtu/Yd/+Ifffp3XeZ33BviRH/mRz/7RH/3Rz+E/2eu8zuu89zu+4zt+1jXXXPNgnukf/uEffvu3fuu3vue3fuu3vpv/o6655poHv9iLvdhrnzlz5kGv8zqv897XXHPNg/k3uu+++249e/bsrffdd9+t9913361nz559xn333Xfr2bNnb73vvvtu5aqr/ge75pprHvxiL/Zir33mzJkHvdM7vdNn83zcd999twJcc801D+b5uO+++249e/bsrX//93//2wD/8A//8Dv/8A//8Nv8D3bNNdc8+LVf+7Xf653e6Z0+m2f6rd/6re/+rd/6re/5h3/4h9/mP9g7vuM7ftY7vdM7fTbAfffdd+vXf/3Xv88//MM//DZXXXXVVVdd9X8XetCDHsRVV1111VVX/V/zju/4jp/1Tu/0Tp/9Iz/yI5/9oz/6o5/DC3HNNdc8+Ju+6ZueDnDffffd+iEf8iEPAXjHd3zHz3qnd3qnzwa47777bv2sz/qs17nvvvtu5T/Yi73Yi732h3/4h3/XNddc82CA++6779bf+q3f+u4f/dEf/Rz+j7nmmmse/GIv9mKvfebMmQe9+Iu/+Gu/2Iu92GvzfNx33323/sM//MNv33fffbf+wz/8w+/8wz/8w28DXHPNNQ8+c+bMg6+55poHA7zYi73Ya11zzTUPPnPmzIOvueaaB/NC3HfffbcCnD179tb77rvv1n/4h3/4HYD77rvvVp7p7NmztwLcd999t3LVVf8BrrnmmgcDnDlz5sHXXHPNg8+cOfMgnunFX/zFXxvgzJkzD77mmmsezL/Db/3Wb33313/9178P/4tdc801D37t137t93qnd3qnzwa47777bv2Hf/iH3/7RH/3Rz7nvvvtu5d/pmmuuefCHf/iHf9eLvdiLvfY//MM//DbAi73Yi732fffdd+uHfMiHPISrrrrqqquu+r8LPehBD+Kqq6666qqr/q95x3d8x896p3d6p8/+kR/5kc/+0R/90c/hhfimb/qmp19zzTUP/od/+Iff/szP/MzX4QGuueaaB3/O53zOb11zzTUPvu+++279rd/6re/+0R/90c/hP8A111zz4Hd8x3f8rNd5ndd5b4D77rvv1t/6rd/67h/90R/9HP4PuOaaax585syZB7/Yi73Ya734i7/4a7/Yi73Ya/N83HfffbeePXv21r//+7//7X/4h3/4nX/4h3/4bf6NrrnmmgefOXPmwddcc82Dz5w586Brrrnmwddcc82Dz5w58+Brrrnmwfwr3XfffbfyTGfPnr0V4L777rsV4L777rsV4OzZs8/gme67775bAc6ePXsrwH333XcrV/2fcs011zwY4MyZMw++5pprHnzmzJkH8UzXXHPNg6+55poHnzlz5sHXXHPNg/k3uO+++24FOHv27K333Xffrffdd9+tAGfPnn3GfffddyvAi73Yi73Wi7/4i7/2i73Yi702z+W+++679R/+4R9++7d+67e+5x/+4R9+m/+Frrnmmge/9mu/9nu90zu902cD3Hfffbf+1m/91nf/6I/+6Ofwb/Q6r/M67/3hH/7h3wVw33333fr1X//173P27NlbP+dzPue3rrnmmgd/yId8yEPuu+++W7nqqquuuuqq/5vQgx70IK666qqrrrrq/5oP//AP/67XeZ3Xee+v//qvf5/f+q3f+m5egHd8x3f8rHd6p3f67H/4h3/47c/8zM98HZ6Pa6655sGv/dqv/V7v9E7v9NkA9913360/+qM/+jm/9Vu/9d38G73jO77jZ73TO73TZ/NMP/IjP/LZP/qjP/o5/C92zTXXPPi1X/u13+uaa6558Ou8zuu8N8/Hfffdd+vZs2dv/fu///vf/od/+Iff+Yd/+Iff5r/INddc82CAM2fOPPiaa6558JkzZx50zTXXPPiaa655MM905syZBwNcc801D+Y/0H333Xcrz3T27NlbAe67775beab77rvv1rNnzz6DZ7rvvvtuBTh79uytAPfdd9+tXPWf4pprrnkwwJkzZx58zTXXPBjgzJkzDwK45pprHnzNNdc8GODFXuzFXpt/g/vuu+9WgLNnz95633333XrffffdyjOdPXv2Gffdd9+tZ8+evfW+++67lX+la6655sFnzpx58Iu92Iu91ou/+Iu/9ou92Iu9Ng9w33333QrwD//wD7/9W7/1W9/zD//wD7/N/yLXXHPNg1/7tV/7vd7pnd7pswHuu+++Wz/rsz7rde67775beRFdc801D/7wD//w73qxF3ux1wb4h3/4h9/+zM/8zNfhmV7ndV7nvT/8wz/8u/7hH/7hdz7zMz/ztbnqqquuuuqq/5vQgx70IK666qqrrrrq/5rXeZ3Xee93fMd3/Kx/+Id/+O2v//qvfx+ej2uuuebB3/RN3/R0gM/8zM98nX/4h3/4bV6Id3zHd/ysF3/xF3/tF3uxF3ttgPvuu+/W3/qt3/ru3/7t3/6e++6771ZeBNdcc82DP+dzPue3rrnmmgcD/MM//MNvf/3Xf/373Hfffbfyv9A111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bR7gvvvuu/Xs2bO3/v3f//1v/8M//MPv/MM//MNv87/MNddc82Ce6cyZMw8GuOaaax4McObMmQcBXHPNNQ/mma655poHA5w5c+bBANdcc82D+Q9033333coznT179laA++6771ae6b777rsV4OzZs88AuO+++27lmc6ePXsrwH333XcrL8Q111zzYP6Vzpw582D+la655poH86905syZB/GvdM011zyYB7jmmmseDHDmzJkHX3PNNQ/mX+m+++67FeDs2bO33nfffbcC3HfffbcCnD179hn33XffrWfPnr31vvvuu5X/Ytdcc82Dz5w58+AXe7EXe60Xf/EXf+0Xe7EXe20e4L777rsV4B/+4R9++7d+67e+5x/+4R9+m/8Frrnmmgd/zud8zm9dc801D77vvvtu/dEf/dHP+a3f+q3v5l/wOq/zOu/94R/+4d8FcN9999369V//9e/zD//wD7/NA7zYi73Ya3/u537ub/3DP/zD73zmZ37ma3PVVVddddVV/zehBz3oQVx11VVXXXXV/zUv9mIv9tqf+7mf+1v33XffrZ/1WZ/1Ovfdd9+tPJfP/dzP/a0Xe7EXe+3f+q3f+u6v//qvfx9eBNdcc82DX+zFXuy1X+d1Xue9XuzFXuy1Ae67775b/+Ef/uG3f+u3fut7/uEf/uG3eT6uueaaB7/2a7/2e73TO73TZwPcd999t37913/9+/zDP/zDb/O/zDXXXPPg137t136v13md13nva6655sE8wD/8wz/89t///d//9o/+6I9+Dlc9yzXXXPNgnunMmTMPBrjmmmsezDOdOXPmQddcc82DeaZrrrnmwQBnzpx5MMA111zzYK76T3HffffdCnD27NlbAe67775b77vvvlsBzp49+4z77rvvVoB/+Id/+G3+l7nmmmsefObMmQe/2Iu92Gu9+Iu/+Gu/2Iu92GvzAPfdd9+tZ8+evfW3fuu3vue3fuu3vpv/wa655poHv/Zrv/Z7vdM7vdNn33fffbf+1m/91nf/6I/+6OfwfFxzzTUP/vAP//DverEXe7HXBviHf/iH3/7Mz/zM1+H5uOaaax78Td/0TU8/e/bsMz74gz/4wVx11VVXXXXV/03oQQ96EFddddVVV131f9Hnfu7n/taLvdiLvfZv/dZvfffXf/3Xvw8P8GIv9mKv/bmf+7m/BfAhH/IhD7nvvvtu5V/pmmuuefA7vuM7ftbrvM7rvDfPdN999936W7/1W9/9oz/6o5/DM73jO77jZ73TO73TZ/NMP/IjP/LZP/qjP/o5/C/yYi/2Yq/9Yi/2Yq/1Tu/0Tp/NA9x33323/tZv/dZ3nz179hm/9Vu/9d1c9Z/qmmuueTDPdObMmQcDXHPNNQ/mmc6cOfMggGuuuebBANdcc82DeaYzZ848GOCaa655MC/Efffddyv/SmfPnr2Vf6X77rvvVv6V7rvvvlv5Vzp79uwzeID77rvvVoCzZ8/eet99993K/yPXXHPNg8+cOfPgF3uxF3utF3/xF3/tF3uxF3ttnum+++679R/+4R9++7d+67e+5x/+4R9+m/+h3vEd3/Gz3umd3umzAX7kR37ks3/0R3/0c3iA13md13nvD//wD/8ugPvuu+/Wr//6r3+ff/iHf/htXoBrrrnmwd/0Td/09LNnzz7jgz/4gx/MVVddddVVV/3fhB70oAdx1VVXXXXVVf8XXXPNNQ/+pm/6pqffd999t37913/9+/zDP/zDb/NM3/RN3/T0a6655sFf//Vf/z6/9Vu/9d38O1xzzTUPfu3Xfu33ep3XeZ33vuaaax4McN999936D//wD7/9Yi/2Yq99zTXXPBjgH/7hH37767/+69/nvvvuu5X/4a655poHv/Zrv/Z7XXPNNQ9+ndd5nffmAe67775bf+u3fuu7/+Ef/uF3/uEf/uG3ueqqq/5Xuuaaax78Yi/2Yq/9Oq/zOu/1Yi/2Yq/NM9133323/tZv/dZ3//Zv//b33HfffbfyP8zrvM7rvPeHf/iHfxfAfffdd+tnfdZnvQ7Ah3/4h3/Xi73Yi702wD/8wz/89md+5me+Di+Cn/iJnzDA273d24mrrrrqqquu+r8JPehBD+Kqq6666qqr/q/68A//8O96ndd5nff+rd/6re/++q//+vcBeMd3fMfPeqd3eqfP/od/+Iff/szP/MzX4T/INddc8+AXe7EXe+13fMd3/KxrrrnmwTzAb/3Wb33313/9178P/4Ndc801D37t137t93rxF3/x136xF3ux1+YB7rvvvlt/67d+67t/+7d/+3vuu+++W7nqqqv+T7nmmmse/Nqv/drv9U7v9E6fzTPdd999t/7DP/zDb//DP/zD7/zWb/3Wd/M/yJkzZx70uZ/7ub99zTXXPPi+++679ZprrnkwwH333Xfrb/3Wb333j/7oj34OL6Jv+qZvevo111zz4A/5kA95yH333XcrV1111VVXXfV/D3rQgx7EVVddddVVV/1fdc011zz4m77pm54O8Jmf+Zmvc/bs2Vu/6Zu+6ekAn/mZn/k6//AP//Db/Ad6x3d8x896p3d6p8/m+bjvvvtu/a3f+q3v/u3f/u3vue+++27lf4Brrrnmwa/92q/9Xq/zOq/z3tdcc82DeYB/+Id/+O2///u//+0f/dEf/Ryu+l/lmmuueTDAmTNnHgxwzTXXPBjgzJkzD+JfcPbs2Wfwr3Tffffdyr/C2bNnb+WFuO+++27lqv8W11xzzYNf7MVe7LVf7MVe7LVe53Ve5715pvvuu+/W3/qt3/ruf/iHf/idf/iHf/ht/gd4sRd7sdf+8A//8O+65pprHgxw33333fohH/IhD+Ff6XM/93N/68Ve7MVe+zM/8zNf5x/+4R9+m6uuuuqqq676vwc96EEP4qqrrrrqqqv+L/vwD//w73qd13md9/6Hf/iH3wZ4sRd7sdf+rd/6re/++q//+vfhP8g111zz4M/5nM/5rWuuuebBAP/wD//w21//9V//PgAv9mIv9tqv8zqv814v9mIv9toA9913363/8A//8Nu/9Vu/9T3/8A//8Nv8F3uxF3ux136xF3ux13qnd3qnz+YB7rvvvlt/67d+67vPnj37jN/6rd/6bq76L3XNNdc8mGc6c+bMgwGuueaaBwOcOXPmQTzTNddc82CAa6655sEAZ86ceTDANddc82D+D7nvvvtuBTh79uyt9913360A9913361nz559BsB99913K8DZs2dvve+++27lqv9w11xzzYNf+7Vf+71e/MVf/LVf7MVe7LV5pvvuu+/W3/qt3/ruH/3RH/0c/pu8zuu8znt/+Id/+HcB3Hfffbdec801Dwb4kR/5kc/+0R/90c/hX+FzP/dzf+vFXuzFXvszP/MzX+cf/uEffpurrrrqqquu+r8HPehBD+Kqq6666qqr/i+75pprHvxN3/RNT+cBPuRDPuQh99133638B3jHd3zHz3qnd3qnzwa47777bv36r//69/mHf/iH3+a5XHPNNQ9+x3d8x896ndd5nffmme67775bf+u3fuu7f/RHf/Rz+E/0Yi/2Yq/9Oq/zOu/1Oq/zOu/NA9x33323/tZv/dZ3/8M//MPv/MM//MNvc9W/yzXXXPNggDNnzjz4mmuuefCZM2cexDNdc801Dwa45pprHgxw5syZBwNcc801D+Y/2H333XcrwNmzZ28FuO+++24FuO+++27lX3DNNdc8mH+la6655sH8K5w5c+bBvADXXHPNg/k3uO+++24FOHv27K333XffrQD33XffrWfPnn0GwH333XcrwNmzZ2+97777buWqf5Vrrrnmwa/92q/9Xu/0Tu/02TzTfffdd+s//MM//PZv/dZvfc8//MM//Db/Ba655poHf/iHf/h3vdiLvdhrA/zDP/zDb3/mZ37m67zjO77jZ73TO73TZwP8wz/8w29/5md+5uvwIvrcz/3c33qxF3ux1/76r//69/mt3/qt7+aqq6666qqr/u9BD3rQg7jqqquuuuqq/+te53Ve570//MM//LsAvv7rv/59fuu3fuu7+Xe65pprHvzhH/7h33XmzJkHX3PNNQ/+kR/5kc/+0R/90c/hX3DNNdc8+LVf+7Xf63Ve53Xe+5prrnkwwH333XfrP/zDP/z2b/3Wb33PP/zDP/w2/0He8R3f8bNe53Ve572vueaaB/NM9913362/9Vu/9d2//du//T333XffrVz1r3LNNdc8+MyZMw9+sRd7sdcCuOaaax58zTXXPPjFXuzFXpt/h/vuu+9Wnuns2bO3Atx33323Atx333238kxnz559BsB99913K8DZs2dvBbjvvvtu5f+Qa6655sEAZ86cefA111zzYIAzZ8486JprrnkwwDXXXPPgM2fOPPiaa655MP8G9913360AZ8+evfW+++67FeC+++679ezZs88AuO+++279h3/4h9/mqudwzTXXPPjFXuzFXvt1Xud13uvFXuzFXptnuu+++279rd/6re/+7d/+7e+57777buU/0DXXXPPg137t136vd3qnd/psnum+++679bd+67e++0d/9Ec/h2c6c+bMgz73cz/3t6+55poH33fffbd+1md91uvcd999t/IveMd3fMfPeqd3eqfP/pEf+ZHP/tEf/dHP4aqrrrrqqqv+70EPetCDuOqqq6666qr/697xHd/xs97pnd7pswG+/uu//n1+67d+67v5d7jmmmse/OEf/uHf9WIv9mKvfd999936WZ/1Wa9z33333cq/wjXXXPPgF3uxF3vt13md13mvF3uxF3ttnum+++679Ud/9Ec/57d+67e+m3+Da6655sGv/dqv/V7v9E7v9Nk803333Xfrb/3Wb333j/7oj34OV71Q11xzzYPPnDnz4GuuuebBZ86cedA111zz4GuuuebBL/ZiL/bavAjuu+++W8+ePXvrfffdd+t99913K8909uzZZwDcd999twKcPXv2VoD77rvvVq76d7vmmmseDHDmzJkHX3PNNQ8GOHPmzIOuueaaBwNcc801Dz5z5syDr7nmmgfzr3Dffffdevbs2Vvvu+++W//hH/7hd+67775b/+Ef/uG3uYprrrnmwa/92q/9Xq/zOq/z3tdcc82Deab77rvv1q//+q9/n3/4h3/4bf6Nrrnmmge/9mu/9nu9zuu8zntfc801D+aZ7rvvvlt/67d+67t/9Ed/9HN4Pq655poHf87nfM5vXXPNNQ++7777bv2sz/qs17nvvvtu5YV4x3d8x896p3d6p8/+kR/5kc/+0R/90c/hqquuuuqqq/7vQQ960IO46qqrrrrqqv/rfuInfsI803333Xfrh3zIhzyEf6Nrrrnmwd/0Td/0dID77rvv1g/5kA95CP9O11xzzYNf+7Vf+73e6Z3e6bN5pvvuu+/Wf/iHf/jtf/iHf/id3/qt3/pu/gXXXHPNg1/7tV/7vd7pnd7ps3mm++6779Yf/dEf/Zzf+q3f+m6uuuyaa655MMCLvdiLvfaZM2ceBPDiL/7ir33mzJkHX3PNNQ/mX3Dffffdevbs2Vvvu+++W++7775bz549+4z77rvv1n/4h3/4ba76X+Oaa655MMCZM2cefM011zwY4MyZMw+65pprHgxwzTXXPPjFXuzFXpsX4L777rv17Nmzt9533323/sM//MPv3Hfffbf+wz/8w2/z/9Q111zz4Hd8x3f8rNd5ndd5b57pvvvuu/VHf/RHP+e3fuu3vpsXwTXXXPPg137t136vF3/xF3/tF3uxF3ttnum+++679bd+67e++7d/+7e/57777ruVf8E1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9m//9vfcd999t/JM11xzzYMBXuzFXuy1X+d1Xue9XuzFXuy1eS733Xffrf/wD//w2//wD//wO7/1W7/13fwPc8011zz4tV/7td8L4J3e6Z0+m+fjvvvuu/Uf/uEffvu+++679R/+4R9+5x/+4R9+m6uu+l/qmmuueTDAi73Yi702wIu92Iu91jXXXPPgF3uxF3ttHuC+++679R/+4R9++x/+4R9+57d+67e+m/8Frrnmmge/9mu/9nu90zu902fzAD/yIz/y2S/+4i/+2i/2Yi/22gD33XffrV//9V//Pv/wD//w2/wnebEXe7HX/tzP/dzfuu+++279+q//+vf5h3/4h99+sRd7sdf+3M/93N8C+MzP/MzX+Yd/+Iff5qqrrrrqqqv+70IPetCDuOqqq6666qr/yz78wz/8u17ndV7nvb/+67/+fX7rt37ru3mma6655sGv/dqv/V7v9E7v9NkAP/IjP/LZP/qjP/o5PNPrvM7rvPeHf/iHfxfAj/zIj3z2j/7oj34O/wWuueaaB7/2a7/2e73O67zOe19zzTUPBrjvvvtu/a3f+q3v/tEf/dHP4UVwzTXXPBjgxV7sxV77dV7ndd7rxV7sxV6b53Lffffd+g//8A+//Q//8A+/81u/9VvfzX+ha6655sEv9mIv9tpnzpx50Iu/+Iu/9ou92Iu9Ns/lvvvuuxXgt37rt777H/7hH37nH/7hH36bq676f+Caa6558Iu92Iu99ou92Iu91uu8zuu8Nw9w33333Xr27Nlb//7v//63/+Ef/uF3/uEf/uG3+R/immuuefBrv/Zrv9c7vdM7fTYPcN999936W7/1W9/9oz/6o5/DM73O67zOe7/jO77jZ11zzTUPBvit3/qt7/7RH/3Rz7nvvvtu5T/Bh3/4h3/X67zO67z3P/zDP/z2Z37mZ77O537u5/7Wi73Yi732b/3Wb33313/9178PV1111VVXXfV/G3rQgx7EVVddddVVV/1f9rmf+7m/9WIv9mKv/Zmf+Zmv8w//8A+/zXN5x3d8x896p3d6p88GuO+++279rM/6rNd57dd+7fd6p3d6p88G+Pqv//r3+a3f+q3v5r/A67zO67z3h3/4h38Xz3Tffffd+lu/9Vvf/aM/+qOfw7/DNddc82CAF3uxF3vt13md13mvF3uxF3ttnst999136z/8wz/89j/8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+7Vf+71e53Ve572vueaaB/MA//AP//Dbf//3f//bANdcc82Dr7nmmge/2Iu92GvzQtx33323AvzDP/zDbwP8wz/8w+/cd999t549e/bW++6771auuuqqf7drrrnmwS/2Yi/22mfOnHnQi7/4i7/2i73Yi702L8R9991362/91m9994/+6I9+Dv+DXHPNNQ/+pm/6pqcD3Hfffbd+1md91uvcd999t/Kv9GIv9mKv/bmf+7m/BfAhH/IhD/nwD//w7zpz5syDv/7rv/59/uEf/uG3ueqqq6666qr/29CDHvQgrrrqqquuuur/qmuuuebB3/RN3/T0++6779YP+ZAPeQjPx4u92Iu99ud+7uf+FsCHfMiHPOS+++67lWe65pprHvzar/3a7/VO7/ROnw3wIz/yI5/9oz/6o5/Dv9I111zz4A//8A//rhd7sRd7bYB/+Id/+O2v//qvf5/77rvvVv4Huuaaax782q/92u/1Oq/zOu99zTXXPJhnuu+++279rd/6re8+e/bsM37rt37ru3kBrrnmmgefOXPmwddcc82DAV7sxV7sta655poHv9iLvdhr80Lcd999twKcPXv21vvuu+/Wf/iHf/id++6779azZ8/eet99993KVf8hrrnmmgffd999t3LV/wnXXHPNg1/sxV7stc+cOfOgF3/xF3/tF3uxF3ttno/77rvv1n/4h3/47fvuu+/Wf/iHf/ida6655sGv8zqv814v9mIv9to803333Xfrj/7oj37Ob/3Wb303/0OcOXPmQZ/7uZ/729dcc82D77vvvls/67M+63Xuu+++W3kRveM7vuNnvdM7vdNnA3z913/9+/zWb/3Wd3/4h3/4d73O67zOe3/913/9+/zWb/3Wd3PVVVddddVV/7ehBz3oQVx11VVXXXXV/1Uv9mIv9tof/uEf/l1nz5699TM/8zNfh+fjcz/3c3/rxV7sxV77R37kRz77R3/0Rz+H5+Md3/EdP+ud3umdPhvgH/7hH377Mz/zM1+HF9E7vuM7ftY7vdM7fTbAfffdd+tv/dZvffeP/uiPfg7/w1xzzTUPfu3Xfu33ep3XeZ33vuaaax7MM9133323/tZv/dZ3nz179hm/9Vu/9d38O11zzTUPBnixF3ux1wZ4sRd7sde65pprHnzmzJkHX3PNNQ/mBbjvvvtuBTh79uyt9913363/8A//8Dv33XffrQD/8A//8Nv8P3DNNdc8mGc6c+bMgwGuueaaB585c+ZBPNM111zzYIBrrrnmwQBnzpx5MMA111zzYP4N7rvvvlt5EZ09e/ZW/gX33XffrfwL/uEf/uF3AO67775bAf7hH/7ht7nqsmuuuebBL/ZiL/baZ86cedCLv/iLv/aLvdiLvTbPx3333Xfr2bNnb/37v//73/6Hf/iH3/mHf/iH3+YFuOaaax782q/92u/1Tu/0Tp/NM9133323/tZv/dZ3//Zv//b33Hfffbfy3+yaa6558Od8zuf81jXXXPPg++6779bP+qzPep377rvvVl6Ia6655sEf/uEf/l0v9mIv9toAP/IjP/LZP/qjP/o5AO/4ju/4We/0Tu/02T/yIz/y2T/6oz/6OVx11VVXXXXV/23oQQ96EFddddVVV131f9lP/MRPGOAzP/MzX+cf/uEffpsHeJ3XeZ33/vAP//DvAni7t3s78UK82Iu92Gt/+Id/+Hddc801D77vvvtu/fqv//r3+Yd/+Iff5gW45pprHvzhH/7h3/ViL/Zirw3wD//wD7/9mZ/5ma/D/yDXXHPNg1/7tV/7vV7ndV7nva+55poH80z33Xffrb/1W7/13f/wD//wO//wD//w2/wXueaaax4M8GIv9mKvDfBiL/Zir3XNNdc8+MyZMw++5pprHswLcd9999169uzZW++7775b/+Ef/uF3AO67775b/+Ef/uG3+W92zTXXPJhnOnPmzIMBrrnmmgcDnDlz5kE80zXXXPPga6655sE805kzZx58zTXXPJj/YPfdd9+t11xzzYP5X+a+++67FeDs2bO33nfffbcC/MM//MPvANx33323Apw9e/bW++6771b+l7nmmmsefObMmQdfc801Dz5z5syDAK655poHX3PNNQ8GOHPmzIOvueaaB/N83HfffbeePXv21r//+7//7X/4h3/4nX/4h3/4bf4Nrrnmmge/2Iu92Gu/zuu8znu92Iu92GsD3Hfffbf+wz/8w2//wz/8w+/81m/91nfz3+iaa6558Gu/9mu/1zu90zt99tmzZ5/xm7/5m9/1oz/6o5/D8/GO7/iOn/VO7/ROnw1w33333fr1X//17/MP//APv80zveM7vuNnvdM7vdNn/8iP/Mhn/+iP/ujncNVVV1111VX/t6EHPehBXHXVVVddddX/Ze/4ju/4We/0Tu/02f/wD//w25/5mZ/5OjzAN33TNz39mmuuefDXf/3Xv89v/dZvfTf/gmuuuebBn/M5n/NbANdcc82Df+u3fuu7f+u3fut7/uEf/uG3eYB3fMd3/Kx3eqd3+myA++6779av//qvf59/+Id/+G3+B7jmmmse/Nqv/drv9U7v9E6fzQPcd999t/7Wb/3Wd//DP/zD7/zDP/zDb/M/zDXXXPNggBd7sRd7bYAXe7EXe61rrrnmwWfOnHnwNddc82BeiPvuu+/Ws2fP3nrffffd+g//8A+/A3Dffffd+g//8A+/zb/TNddc8+AzZ848+JprrnnwmTNnHnTNNdc8+JprrnkwwIu92Iu9Nv+B7rvvvlt5prNnz94KcN99991633333coznT179hkA9913360809mzZ2+97777buXf4JprrnkwL6IzZ848mH/BNddc82BeiDNnzjzommuueTDANddc8+AzZ848+Jprrnkw/0r33XffrQBnz5699b777rsV4B/+4R9+B+C+++67FeDs2bO33nfffbfyn+Saa655MMCZM2cefM011zz4zJkzDwK45pprHnzNNdc8+MyZMw++5pprHsy/wn333Xfr2bNnb/37v//73/6Hf/iH3/mHf/iH3+Y/wTXXXPPgd3zHd/ys13md13lvnuns2bPP+M3f/M3v+u3f/u3vue+++27lv8E111zz4Nd+7dd+r3d6p3f67Pvuu+/W3/qt3/ruH/3RH/0cnumaa6558Id/+Id/14u92Iu9NsBv/dZvfffXf/3Xvw/P5XVe53Xe+8M//MO/67d+67e+++u//uvfh6uuuuqqq676vw096EEP4qqrrrrqqqv+L7vmmmse/E3f9E1PB/jMz/zM1/mHf/iH3wZ4ndd5nff+8A//8O/6h3/4h9/+zM/8zNfhRXTNNdc8+MVe7MVe+8M//MO/i2e67777bv3RH/3Rz/mHf/iH3/7wD//w73qxF3ux1wb4kR/5kc/+0R/90c/hv9k111zz4Nd+7dd+r3d6p3f6bB7gvvvuu/W3fuu3vvsf/uEffucf/uEffpv/pa655poHA5w5c+bB11xzzYNf7MVe7LWuueaaBwO82Iu92GvzQtx333238kxnz569FeC+++67lWe67777bj179uwzAM6cOfMggBd/8Rd/bYAXe7EXe21eBPfdd9+tPNPZs2dvBbjvvvtuBbjvvvtu5ZnOnj37DID77rvvVoCzZ8/eCnDffffdyv9z11xzzYN5pjNnzjz4mmuueTDAi73Yi70WwDXXXPNggBd7sRd7bf6V7rvvvlsBzp49e+t99913K8A//MM//M5999136z/8wz/8Ns/lmmuuefCZM2cefM011zz4zJkzDwK45pprHnzNNdc8GODMmTMPvuaaax7Mv8J99913K8DZs2dvve+++2697777bgX4h3/4h98BOHv27K333XffrfwXu+aaax782q/92u/1Oq/zOu99zTXXPBjgvvvuu/Uf/uEffvu3fuu3vucf/uEffpv/Bu/4ju/4We/0Tu/02QA/8iM/8tk/+qM/+jkv9mIv9tqf+7mf+1sA9913361f//Vf/z7/8A//8Ns8H6/zOq/z3h/+4R/+Xf/wD//w25/5mZ/5Olx11VVXXXXV/23oQQ96EFddddVVV131f93rvM7rvPeHf/iHf9c//MM//PZnfuZnvg7AT/zETxjgMz/zM1/nH/7hH36bf6Vrrrnmwa/92q/9Xq/zOq/z3tdcc82DeYD77rvv1q//+q9/n3/4h3/4bf4bXXPNNQ9+7dd+7fd6p3d6p8/mme67775bf+u3fuu7/+Ef/uF3/uEf/uG3+X/gmmuuefCZM2cefM011zz4xV7sxV4L4Jprrnnwi73Yi702/0n+4R/+4bfvu+++WwHuu+++W8+ePfsMnum+++67FeDs2bO3Atx33323ctV/qGuuuebBAGfOnHnwNddc82CAF3uxF3stgGuuuebBAGfOnHnwNddc82D+Bffdd9+tANdcc82D+Ve47777bgU4e/bsrffdd9+t9913360AZ8+efcZ9991369mzZ2+97777buV/iRd7sRd7rdd5ndd579d5ndd5b57p7Nmzz/jN3/zN7/rRH/3Rz+G/2Du+4zt+1ju90zt9NsBv/dZvfffrvM7rvDfAP/zDP/z213/917/PfffddysvwIu92Iu99ud+7uf+1j/8wz/89md+5me+DlddddVVV131fxuVq6666qqrrvp/4B/+4R9+G+DFXuzFXvvFXuzFXvt1Xud13gvgH/7hH377H/7hH36bf4P77rvv1h/90R/9nN/+7d/+ns/5nM/5rWuuuebBPMCLvdiLvdbZs2dvve+++27lv9g111zz4Nd+7dd+r3d6p3f6bJ7pvvvuu/VHf/RHP+e3fuu3vpv/Z+67775beYAzZ848iCt++8Ve7MVem3/Bfffdd+vZs2dvve+++2695pprHgxw5syZBwNcc801D+b5eLEXe7HXfrEXezH+Ne67775beaazZ8/eCnDffffdCnDffffdCnD27NlnANx333238kxnz569FeC+++67lf+jrrnmmgfzIjhz5syDeS733Xffrddcc82D77vvvlt5pmuuuebBZ8+evRXgmmuueTAvxDXXXPNgXoj77rvv1rNnz976Iz/yI58DcPbs2Vvvu+++W/k/5h/+4R9+5x/+4R9+50d/9Ec/57Vf+7Xf63Ve53Xe+5prrnnwO73TO33267zO67z3P/zDP/z2b/3Wb33PP/zDP/w2/wV+9Ed/9HPOnj37jA//8A//rtd5ndd5b4Af+ZEf+ewf/dEf/Ryuuuqqq6666qoHQg960IO46qqrrrrqqv8PXud1Xue9P/zDP/y7/uEf/uG3X+zFXuy1AT7zMz/zdf7hH/7ht/l3+NzP/dzferEXe7HXvu+++279rd/6re9+8Rd/8dd+sRd7sdcGuO+++279h3/4h9/+rd/6re/5h3/4h9/mP9k111zz4Nd+7dd+r3d6p3f6bJ7pH/7hH37767/+69/nvvvuu5X/46655poHnzlz5sEv9mIv9loAL/7iL/7aZ86cefA111zzYF6I++6771aAs2fP3vr3f//3vw3wD//wD79z9uzZW++7775beRFcc801DwY4c+bMgwGuueaaB/NMZ86cedA111zzYJ7pmmuueTDAmTNnHgxwzTXXPJj/IPfdd9+tPNPZs2dvBbjvvvtu5Znuu+++W/kXXHPNNQ/mX3DNNdc8mH/BmTNnHsy/4Jprrnkw/wPcd999twKcPXv21vvuu+/W++6771aAs2fPPuO+++679Zprrnnwi73Yi73WNddc8+AzZ848+Jprrnkwz8d999136z/8wz/8NsA//MM//M5999136z/8wz/8Nv8HXXPNNQ9+sRd7sdd6sRd7sdd+ndd5nffmmf7hH/7ht7/+67/+fe67775b+U/0Yi/2Yq/9uZ/7ub/FA9x33323ftZnfdbr3HfffbfyQlxzzTUP/qZv+qan33fffbd+yId8yEO46qqrrrrqqv/b0IMe9CCuuuqqq6666v+Da6655sHf9E3f9HSe6bd+67e+++u//uvfh3+Hz/3cz/2tF3uxF3vt++6779av//qvf59/+Id/+G2Aa6655sHv+I7v+Fmv8zqv894803333Xfrj/7oj37Ob/3Wb303/8GuueaaB7/jO77jZ73O67zOe/NMP/IjP/LZv/3bv/0999133638H3XNNdc8+LVf+7XfC+Cd3umdPpsX4r777rv17Nmzt95333233nfffbeePXv2Gffdd9+t//AP//Db/A9xzTXXPJhnOnPmzIMBrrnmmgcDnDlz5kEA11xzzYMBrrnmmgfzTGfOnHnwNddc82D+D7vvvvtu5UVw9uzZW3k+7rvvvlvvu+++W3mmf/iHf/gdgLNnz95633333cq/0jXXXPPgM2fOPPiaa6558Iu92Iu91jXXXPPgF3uxF3ttno/77rvvVoB/+Id/+O1/+Id/+J377rvv1n/4h3/4bf4Pueaaax782q/92u/1Oq/zOu99zTXXPPi+++679bd+67e++0d/9Ec/h/8E7/iO7/hZ7/RO7/TZAP/wD//w21//9V//Pp/zOZ/zW9dcc82D77vvvls/5EM+5CG8ENdcc82Dv+mbvunp9913360f8iEf8hCuuuqqq6666v829KAHPYirrrrqqquu+v/iHd/xHT/rnd7pnT4b4EM+5EMect99993Kv9Hnfu7n/taLvdiLvfZ9991369d//de/zz/8wz/8Ns/lmmuuefBrv/Zrv9c7vdM7fTbPdN999936W7/1W9/9oz/6o5/Dv9M111zz4A//8A//rhd7sRd7bZ7pR37kRz77t3/7t7/nvvvuu5X/Q6655poHnzlz5sEv9mIv9lov/uIv/tov9mIv9to8l/vuu+/Ws2fP3vr3f//3vw3wD//wD78D8A//8A+/zf8T11xzzYN5pjNnzjwY4Jprrnkwz3TmzJkH8S84e/bsM/gX3HfffbfyLzh79uyt/Avuu+++W/k/5Jprrnnwi73Yi732i73Yi73WNddc8+AzZ848+Jprrnkwz8d9991369mzZ2+97777bv2Hf/iH3/mHf/iH377vvvtu5X+xa6655sGv/dqv/V7v9E7v9NkA9913362/9Vu/9d0/+qM/+jn8B7jmmmse/Dmf8zm/dc011zwY4Ed+5Ec++0d/9Ec/B+DMmTMP+oiP+IjvPnPmzIPPnj1762d+5me+Di/ET/zETxjg7d7u7cRVV1111VVX/d+GHvSgB3HVVVddddVV/1987ud+7m+92Iu92GsDfOZnfubr/MM//MNv82/wuZ/7ub/1Yi/2Yq9933333fr1X//17/MP//APv80Lcc011zz4tV/7td/rdV7ndd77mmuueTDAfffdd+tv/dZvffdv//Zvf8999913K/8Kr/M6r/Pe7/iO7/hZ11xzzYMB7rvvvlt/67d+67t/9Ed/9HP4P+Kaa6558Iu92Iu99pkzZx704i/+4q/9Yi/2Yq/Nc7nvvvtu/Yd/+Iffvu+++279h3/4h9/5h3/4h9/mqqv+h7nmmmsefObMmQdfc801D36xF3ux17rmmmse/GIv9mKvzfNx33333foP//APv/0P//APv/Nbv/Vb383/Utdcc82DP/zDP/y7XuzFXuy1Ac6ePfuMz/zMz3zt++6771b+jd7xHd/xs97pnd7pswHuu+++W7/+67/+ff7hH/7ht3mAa6655sGf8zmf81vXXHPNg7/+67/+fX7rt37ru3kBvumbvunp11xzzYM/5EM+5CH33XffrVx11VVXXXXV/13oQQ96EFddddVVV131/8Xnfu7n/taLvdiLvTbAP/zDP/z2Z37mZ74O/0qf+7mf+1sv9mIv9tr33XffrV//9V//Pv/wD//w27yIrrnmmge/2Iu92Gu/zuu8znu92Iu92GsD3Hfffbf+wz/8w2//1m/91vf8wz/8w2/zQrzjO77jZ73O67zOe19zzTUPBrjvvvtu/a3f+q3v/tEf/dHP4X+5a6655sGv/dqv/V4A7/RO7/TZPB/33Xffrb/1W7/13WfPnn3Gb/3Wb303V131v9g111zz4Bd7sRd77TNnzjzommuuefCLvdiLvfY111zzYJ7pvvvuu/Xs2bO3/v3f//1v/8M//MPv/MM//MNv87/MO77jO37W67zO67z3Nddc8+D77rvv1t/6rd/67h/90R/9HF5E11xzzYNf+7Vf+71e53Ve572vueaaBwP81m/91nd//dd//fvwArzO67zOe3/4h3/4d9133323fsiHfMhDeAG+6Zu+6enXXHPNgz/kQz7kIffdd9+tXHXVVVddddX/XehBD3oQV1111VVXXfX/wTXXXPPgb/qmb3o6wH333XfrNddc8+DP/MzPfJ1/+Id/+G1eRJ/7uZ/7Wy/2Yi/22vfdd9+tX//1X/8+//AP//Db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/MO/68Ve7MVeG+BHfuRHPvtHf/RHP4d/o2uuuebBL/ZiL/baL/ZiL/Zar/M6r/PePMB9991369mzZ2/9+7//+9/+h3/4h9/5h3/4h9/mRfRiL/Zir/1iL/Zir/VO7/ROn80D3Hfffbf+1m/91nf/6I/+6Odw1X+5a6655sE805kzZx4McM011zz4zJkzD+KZrrnmmgcDXHPNNQ8GOHPmzIMBrrnmmgfzAPfdd9+t/AvOnj17Ky/Efffddyv/gvvuu+9WXoizZ88+g2e67777bj179uyt9913361c9R/qzJkzD3qd13md936nd3qnz+aZzp49+4zf/M3f/K4f/dEf/Rz+na655poHv/Zrv/Z7vdM7vdNn8wC/9Vu/9d3/8A//8Du/9Vu/9d38C6655poHf87nfM5vXXPNNQ++7777bv2sz/qs17nvvvtu5d/hcz/3c3/rxV7sxV4b4Ou//uvf57d+67e+m6uuuuqqq676/wM96EEP4qqrrrrqqqv+P/jwD//w73qd13md9/6RH/mRz/7RH/3Rz+H5eJ3XeZ33/vAP//DvArjvvvtu/azP+qzXue+++27lP9A7vuM7ftY7vdM7fTbAfffdd+vXf/3Xv88//MM//Db/Qa655poHnzlz5sEv9mIv9lov/uIv/tov9mIv9to8wH333XfrP/zDP/z2P/zDP/zOfffdd+s//MM//DYPcM011zz4tV/7td/rnd7pnT6bB7jvvvtu/a3f+q3v/tEf/dHP4ap/s2uuuebBPNOZM2ceDHDNNdc8+MyZMw/ima655poHA1xzzTUPBjhz5syDAa655poH83/Yfffdd+s111zzYB7gvvvuuxXg7Nmzt9533323AvzDP/zD7wDcd999t549e/bW++6771au+le55pprHvxiL/Zir/06r/M67/ViL/Zirw1w33333foP//APv/1bv/Vb3/MP//APv82/wjXXXPPgd3zHd/ys13md13lvnum+++679bd+67e++0d/9Ec/h3+la6655sGf8zmf81vXXHPNg8+ePfuMz/zMz3zt++6771b+jV7ndV7nvT/8wz/8uwA+67M+63X+/u///re56qqrrrrqqv8/0IMe9CCuuuqqq6666v+DD//wD/+u13md13nvr//6r3+f3/qt3/puno8P//AP/67XeZ3XeW+e6b777rv1sz7rs17nvvvuu5V/p2uuuebBH/7hH/5dL/ZiL/baAL/1W7/13V//9V//Pvwnu+aaax78Yi/2Yq/9Yi/2Yq91zTXXPPjFXuzFXpsHuO+++279h3/4h9++7777bn2nd3qnz+YB7rvvvlt/67d+67t/+7d/+3vuu+++W7nqBbrmmmsefObMmQe/2Iu92GsBvPiLv/hrA5w5c+bBANdcc82D+Q9y33333coznT179laA++6779b77rvvVp7p7NmzzwC47777bgU4e/bsrQD33XffrTzANddc82D+BWfOnHkwL8Q111zzYP4FZ86ceRAvxDXXXPNggGuuuebBAGfOnHnwNddc82BeRPfdd9+tAGfPnr31vvvuuxXgvvvuu/Xs2bPPuO+++24FOHv27K333XffrVz1HM6cOfOgd3qnd/rs13md13lvnuns2bPP+JEf+ZHP/q3f+q3v5vm45pprHnzmzJkHv9iLvdhrvdM7vdNn8wA/8iM/8tn/8A//8Dv/8A//8Nv8O1xzzTUP/pzP+Zzfuuaaax5833333fpZn/VZr3Pffffdyr/BT/zET5hn+od/+Iff+czP/MzX5qqrrrrqqqv+/0APetCDuOqqq6666qr/Dz78wz/8u17ndV7nvb/+67/+fX7rt37ru3ku11xzzYO/6Zu+6ekAn/mZn/k6H/7hH/5d11xzzYPvu+++W3/0R3/0c37rt37ru/k3esd3fMfPeqd3eqfPBrjvvvtu/fqv//r3+Yd/+Iff5r/BNddc8+AXe7EXe+3XeZ3Xea8Xe7EXe21egK//+q9/n9/6rd/6bq56lmuuuebBZ86cefCLvdiLvRbAi7/4i7/2mTNnHnzNNdc8mBfRfffddyvPdPbs2VsB7rvvvlvvu+++W3mms2fPPgPgvvvuuxXg7NmztwLcd999t/L/zDXXXPNggDNnzjz4mmuueTDAi73Yi70WwDXXXPPgM2fOPPiaa655MP8K9913360AZ8+evfW+++679b777rv17NmzzwC47777bv2Hf/iH3+b/oWuuuebBr/3ar/1e7/RO7/TZPNN9991362/91m9992//9m9/z2u/9mu/F8CLv/iLv/aLvdiLvTYPcN999936W7/1W9/9oz/6o5/Df6BrrrnmwZ/zOZ/zW9dcc82D77vvvls/67M+63Xuu+++W/lXeMd3fMfPeqd3eqfP/od/+IfffrEXe7HXPnv27DM++IM/+MFcddVVV1111f8f6EEPehBXXXXVVVdd9f/B537u5/7Wi73Yi732Z37mZ77OP/zDP/w2z+XDP/zDv+t1Xud13vu3fuu3vvvrv/7r3+eaa6558Gu/9mu/1zu90zt99n333Xfrb/3Wb333j/7oj34O/wrXXHPNgz/8wz/8u17sxV7stQH+4R/+4bc/8zM/83X4b3LNNdc8+LVf+7Xf63Ve53Xe+5prrnkwz3Tffffdevbs2Vtf7MVe7LV5gPvuu+/Ws2fP3vr3f//3v/0P//APv/MP//APv83/cddcc82Dz5w58+AXe7EXey2AF3/xF3/tM2fOPPiaa655MC/Efffdd+vZs2dv/fu///vfBviHf/iH3wE4e/bsrQD33XffrVz1n+aaa655MMCZM2cefM011zwY4MyZMw+65pprHnzNNdc8GODMmTMPvuaaax7Mi+C+++679ezZs7fed999t/7DP/zD79x33323/sM//MNv8//Ai73Yi732O77jO37Wi7/4i782L8R9991362/91m999z/8wz/8zj/8wz/8Nv9Jzpw586CP+IiP+O4Xe7EXe+377rvv1s/6rM96nfvuu+9WXkQ/8RM/YYDP/MzPfJ0P//AP/65rrrnmwR/yIR/ykPvuu+9Wrrrqqquuuur/BypXXXXVVVdddRXXXHPNg1/ndV7nvQF+9Ed/9HMA7rvvvlt/9Ed/9HMA3umd3umz3+md3umzAX70R3/0c3gRvNiLvdhrf+7nfu5vAdx33323fv3Xf/37/MM//MNv89/gmmuuefBrv/Zrv9c7vdM7fTbPdN999936W7/1W9/9D//wD7/zD//wD78NcM011zz4zJkzD36xF3ux13rxF3/x136xF3ux177mmmse/GIv9mKvDXDffffd+g//8A+//Q//8A+/81u/9Vvfzf9S11xzzYPPnDnz4Bd7sRd7LYAXf/EXf+0Xe7EXe23+Bffdd9+tZ8+evfXv//7vfxvgH/7hH37n7Nmzt9533323ctV/q/vuu+9WgPvuu+/Wf/iHf+CFueaaax585syZBwNcc801Dz5z5syDrrnmmgcDXHPNNQ9+sRd7sde+5pprHnzNNdc8+MVe7MV4ndd5nfcGuO+++249e/bsrffdd9+t//AP//A79913363/8A//8Nv8L3fNNdc8+LVf+7XfC+DFX/zFX/vFXuzFXpsX4r777rv167/+69/nH/7hH36b/wJnz559xtd//de/zzu+4zt+1uu8zuu89+d8zuf81jd8wze8z9///d//Nv+Cz/3cz/0tgN/6rd/67n/4h3/4ba666qqrrrrq/yf0oAc9iKuuuuqqq676/+DDP/zDv+t1Xud13vszP/MzX+cf/uEffpsH+NzP/dzferEXe7HX/q3f+q3v/vqv//r34bm84zu+42e90zu902cD/MM//MNvf+Znfubr8AJcc801D/7wD//w73qxF3ux1wb4h3/4h9/+zM/8zNfhv8E111zz4Nd+7dd+r3d6p3f6bJ7pvvvuu/VHf/RHP+e3fuu3vpt/wTXXXPPgF3uxF3vtF3uxF3utF3uxF3vta6655sE8wH333Xfr2bNnb73vvvtu/Yd/+Iffue+++249e/bsrffdd9+t/De65pprHgzwYi/2Yq995syZBwG8+Iu/+Gu/2Iu92GvzL7jvvvtuPXv27K1///d//9sA//AP//A7Z8+evfW+++67lav+37jmmmse/GIv9mKv/WIv9mKvdc011zz4xV7sxV6b5+O+++67FeAf/uEffvsf/uEffue+++679R/+4R9+m/+hrrnmmgefOXPmwS/2Yi/2Wi/+4i/+2i/2Yi/22jwf9913362/9Vu/9d0AP/qjP/o511xzzYNf+7Vf+73e6Z3e6bN5pvvuu+/W3/7t3/6eH/mRH/ls/gtcc801D37t137t93qnd3qnzz579uwzvu7rvu69/+Ef/uG3eT6uueaaB3/4h3/4d73Yi73Ya//Wb/3Wd//oj/7o59x33323fu7nfu5vvdiLvdhrf+Znfubr/MM//MNvc9VVV1111VX/P6AHPehBXHXVVVddddX/Bx/+4R/+Xa/zOq/z3r/1W7/13V//9V//PjzTi73Yi732537u5/4WwId8yIc85L777ruV5+Oaa6558Od8zuf81jXXXPPg++6779bP+qzPep377rvvVh7gmmuuefA3fdM3PZ1n+pEf+ZHP/tEf/dHP4b/YNddc8+DXfu3Xfq93eqd3+mye6b777rv167/+69/nH/7hH36bf6NrrrnmwS/2Yi/22i/2Yi/2Wq/zOq/z3rwA9913360A//AP//DbAP/wD//wO/fdd9+t//AP//Db/Ce45pprHvzar/3a7wXw4i/+4q995syZB19zzTUP5gW47777bj179uytf//3f//bAP/wD//wO2fPnr31vvvuu5WrrnoBrrnmmgefOXPmwddcc82DX+zFXuy1rrnmmge/2Iu92GvzXO67775bAf7hH/7ht//hH/7hd+67775b/+Ef/uG3+W9wzTXXPPi1X/u13wvgxV/8xV/7xV7sxV6b53Lffffdevbs2Vv//u///rf/4R/+4Xf+4R/+4bd5Aa655poHv/Zrv/Z7vc7rvM57X3PNNQ8GuO+++279rd/6re/+7d/+7e+57777buU/0TXXXPPg137t136vd3qnd/rs++6779bf+q3f+u4f/dEf/Rwe4MVe7MVe+3M/93N/C+C+++679eu//uvf5x/+4R9+G+BzP/dzf+vFXuzFXvszP/MzX+cf/uEffpurrrrqqquu+v8BPehBD+Kqq6666qqr/j+45pprHvxN3/RNT7/vvvtu/fqv//r3+Yd/+IffBvjcz/3c33qxF3ux1/6t3/qt7/76r//69+GFuOaaax78OZ/zOb91zTXXPPi+++679bM+67Ne57777rsV4MVe7MVe+8M//MO/65prrnnwP/zDP/z213/917/Pfffddyv/ha655poHv/Zrv/Z7vdM7vdNn80z33XffrV//9V//Pv/wD//w2/wHu+aaax78Yi/2Yq8N8GIv9mKvdc011zz4xV7sxV6bF+K+++679ezZs7fed999t/7DP/zD79x33323AvzDP/zDb/Miuuaaax782q/92u8F8E7v9E6fzfNx33333Xr27Nlb//7v//63Af7hH/7hd86ePXvrfffddytXXfUf5JprrnnwmTNnHnzNNdc8+MVe7MVe65prrnnwi73Yi702z8d999136z/8wz/89j/8wz/8zn333XfrP/zDP/w2/4GuueaaB585c+bBL/ZiL/ZaL/7iL/7aL/ZiL/baPB/33Xffrb/1W7/13QA/+qM/+jn8G1xzzTUPfrEXe7HXfp3XeZ33erEXe7HXBviHf/iH3/77v//73/7RH/3Rz+E/0TXXXPPg137t136vd3qnd/rs++6779bf+q3f+u4f/dEf/RyAd3zHd/ysd3qnd/psgH/4h3/47c/8zM98HR7gwz/8w7/rdV7ndd7767/+69/nt37rt76bq6666qqrrvr/AT3oQQ/iqquuuuqqq/6/+PAP//Dvep3XeZ33/q3f+q3v/vqv//r3ebEXe7HX/tzP/dzfAviQD/mQh9x333238i+45pprHvyO7/iOn/U6r/M6733ffffd+lu/9Vvf/Q//8A+/87mf+7m/BfBbv/Vb3/31X//178N/oWuuuebBr/3ar/1e7/RO7/TZPNN9991369d//de/zz/8wz/8Nv/FrrnmmgefOXPmwddcc82DX+zFXuy1AK655poHv9iLvdhr8wLcd999twKcPXv21vvuu+/Wf/iHf/id++6779azZ8/eCvDar/3a7/XiL/7ir/1iL/Zir81zue+++249e/bsrX//93//2//wD//wO//wD//w21x11X+Ta6655sEAL/ZiL/baL/ZiL/Za11xzzYNf7MVe7LV5Pu67775bz549e+t9991362/91m99zz/8wz/8Ni+ia6655sGv/dqv/V4AL/7iL/46L/ZiL/ZaPJf77rvv1rNnz97693//97/9D//wD7/zD//wD7/Nf7Brrrnmwe/4ju/4Wa/zOq/z3gBnz559xtd93de99z/8wz/8Nv+J3vEd3/Gz3umd3umz77vvvlt/67d+67tf/MVf/LVf7MVe7LUBfuRHfuSzf/RHf/RzeC4f/uEf/l2v8zqv895f//Vf/z6/9Vu/9d1cddVVV1111f8P6EEPehBXXXXVVVdd9f/FNddc8+Bv+qZvevp9991362d91me9zod/+Id/14u92Iu99o/8yI989o/+6I9+Di+ia6655sGv/dqv/V7v9E7v9Nk8wD/8wz/89md+5me+Dv9Frrnmmge/9mu/9nu90zu902fzTPfdd9+tX//1X/8+//AP//Db/A90zTXXPPjMmTMPvuaaax78Yi/2Yq91zTXXPPjMmTMPvuaaax7Mv8J9991362/91m9992//9m9/z3333XcrV131P9g111zzYIAXe7EXe+0Xe7EXe61rrrnmwS/2Yi/22jyX++6779Z/+Id/+O1/+Id/+J3f+q3f+m6e6ZprrnnwmTNnHvxiL/Zir/XiL/7ir/NiL/Zir8Xzcd999936W7/1W98N8KM/+qOfw3+ha6655sGf8zmf81vXXHPNg++7775bf+u3fuu7f/RHf/Rz+E/0ju/4jp/1Tu/0Tp/NM9133323fv3Xf/37/MM//MNv83y84zu+42e90zu902f/yI/8yGf/6I/+6Odw1VVXXXXVVf8/oAc96EFcddVVV1111f8nH/7hH/5dr/M6r/Pe//AP//DbL/ZiL/baAG/3dm8n/g3e8R3f8bPe6Z3e6bN5pvvuu+/WH/3RH/2c3/qt3/pu/hNdc801D37t137t93qnd3qnz+aZ/uEf/uG3f+RHfuRz/uEf/uG3+V/kmmuuefCZM2ce/Dqv8zrv9WIv9mKvfc011zyYf4X77rvv1rNnz95633333foP//APv3PffffdCvAP//APv81VV/0Pd8011zz4tV/7td/rmmuuefDrvM7rvDcPcN9999169uzZZ7zYi73Ya/F83HfffbeePXv21r//+7//7X/4h3/47X/4h3/4Hf6bXXPNNQ9+7dd+7fd6p3d6p88GuO+++279+q//+vf5h3/4h9/mP8GLvdiLvfbnfu7n/hbP9PVf//Xv81u/9VvfzQvwju/4jp/1Tu/0Tp/9Iz/yI5/9oz/6o5/DVVddddVVV/3/gB70oAdx1VVXXXXVVf+fXHPNNQ/+pm/6pqfzTD/yIz/y2T/6oz/6OfwrXXPNNQ/+8A//8O96sRd7sde+7777bgW45pprHgxw33333fqjP/qjn/Nbv/Vb381/oGuuuebBr/3ar/1e7/RO7/TZPNM//MM//PbXf/3Xv8999913K/8LXHPNNQ9+sRd7sdc+c+bMg178xV/8tV/sxV7stXku9913362/9Vu/9d3/8A//8Dv/8A//8NvXXHPNg8+cOfPga6655sEv9mIv9loA11xzzYNf7MVe7LV5Ae67775bAf7hH/7htwH+4R/+4Xfuu+++W8+ePXvrfffddytXXfVf4JprrnnwmTNnHnzNNdc8+MyZMw8CuOaaax58zTXXPOTMmTMPuuaaax7Mv8J9991369mzZ2/9zM/8zNfhf7BrrrnmwZ/zOZ/zW9dcc82DAX70R3/0c37kR37ks/kP9I7v+I6f9U7v9E6fDfAP//APv/1iL/Zir33ffffd+iEf8iEP4QV4x3d8x896p3d6p8/+rd/6re/++q//+vfhqquuuuqqq/5/QA960IO46qqrrrrqqv9vPvdzP/e3XuzFXuy1Ad7u7d5O/Ctdc801D/7wD//w73qxF3ux1/6Hf/iH3/7Mz/zM17nmmmse/Nqv/drv9Tqv8zrvfc011zwY4L777rv1t37rt777R3/0Rz+Hf4drrrnmwa/92q/9Xu/0Tu/02TzTP/zDP/z213/917/Pfffddyv/g11zzTUPfu3Xfu33Anid13md977mmmsezHO57777bv2t3/qt7/6Hf/iH3/mHf/iH3+Zf4ZprrnnwmTNnHnzNNdc8+MVe7MVe65prrnnwmTNnHnzNNdc8mBfgvvvuuxXgH/7hH377vvvuu/Xs2bPPALjvvvtuBTh79uytAPfdd9+tXHXV83HNNdc8GODMmTMPvuaaax585syZBwG8+Iu/+OsAfrEXe7HX5kV033333Qpw9uzZW++7775b77vvvlsB/uEf/uF3rrnmmge9zuu8znu/2Iu92GvzAPfdd9+tv/Vbv/Xd//AP//A7//AP//Db/A90zTXXPPi1X/u13+ud3umdPhvgvvvuu/W3fuu3vvtHf/RHP4d/h2uuuebBH/7hH/5dL/ZiL/baAD/yIz/y2T/6oz/6OZ/zOZ/zWy/+4i/+2j/yIz/y2T/6oz/6OTwfr/M6r/PeH/7hH/5dv/Vbv/XdX//1X/8+XHXVVVddddX/D+hBD3oQV1111VVXXfX/zTu+4zt+1ju90zt99n333Xfrh3zIhzyEf6XP/dzP/a0Xe7EXe+377rvv1g/5kA95CA9wzTXXPPjFXuzFXvsd3/EdP+uaa655MMB9991362/91m9994/+6I9+Dv8K11xzzYNf+7Vf+73e6Z3e6bN5pn/4h3/47a//+q9/n/vuu+9W/oe65pprHvzar/3a7/U6r/M6733NNdc8mAe47777bj179uytf//3f//b//AP//A7//AP//Db/Ce45pprHgzwYi/2Yq8N8GIv9mKvdc011zz4xV7sxV6bf6X77rvvVoCzZ8/eCnDffffdyjPdd999t549e/YZPNN99913K8DZs2dvve+++27lqv91rrnmmgefOXPmwddcc82Dz5w58yCAa6655sHXXHPNg8+cOfPga6655sG8iO67775bz549e+t9991363333XcrwNmzZ59x3333Pf3s2bPPuO+++27lRXDNNdc8+MVe7MVe+8Ve7MVe63Ve53Xemwe47777bv2Hf/iH3/mt3/qt7/6Hf/iH3+Z/mGuuuebBH/7hH/5dL/ZiL/baAP/wD//w21//9V//Pvfdd9+t/Cu92Iu92Gt/7ud+7m8B3Hfffbd+/dd//fv8wz/8w28DvNiLvdhrfe7nfu5v33fffbd+yId8yEN4Pl7sxV7stT/3cz/3t/7hH/7htz/zMz/zdbjqqquuuuqq/x/Qgx70IK666qqrrrrq/5tv+qZvevo111zzYIDf+q3f+u6v//qvfx9eRJ/7uZ/7Wy/2Yi/22vfdd9+tH/IhH/IQXoBrrrnmwS/2Yi/22q/zOq/zXi/2Yi/22gD33Xffrb/1W7/13T/6oz/6OfwL3vEd3/Gz3umd3umzeaZ/+Id/+O2v//qvf5/77rvvVv4Huuaaax782q/92u/1Oq/zOu99zTXXPJhnuu+++249e/bsrX//93//2//wD//wO//wD//w2/w3u+aaax585syZB19zzTUPfrEXe7HX4pmuueaaBwOcOXPmwQDXXHPNg/kPcN99993KM509e/ZWgPvuu+9WgPvuu+9WgLNnzz4D4L777ruVZzp79uyt9913361c9R/immuueTDAmTNnHnzNNdc8+MyZMw8CePEXf/HXBnixF3ux1+ZFdN99990KcPbs2Vvvu+++W++7775bAf7hH/7htwH9wz/8w2/zn+TMmTMPuuaaax7yYi/2Yq/14i/+4q/9Yi/2Yq/NM9133323/sM//MNv/8M//MPv/NZv/dZ38z/IO77jO37WO73TO302wH333Xfrb//2b3/Pj/zIj3w2L6LXeZ3Xee8P//AP/y6Af/iHf/jtz/zMz3wdnsvnfu7n/taLvdiLvfZv/dZvfffXf/3Xvw/P5cVe7MVe+3M/93N/6x/+4R9++zM/8zNfh6uuuuqqq676/wE96EEP4qqrrrrqqqv+v/mmb/qmp19zzTUPBrjvvvtu/ZAP+ZCH8CL43M/93N96sRd7sde+7777bv2sz/qs17nvvvtu5UXwOq/zOu/9Oq/zOu/1Yi/2Yq8NcN999936W7/1W9/9oz/6o5/Dc7nmmmse/OEf/uHf9WIv9mKvDfAP//APv/31X//173Pffffdyv8w11xzzYNf+7Vf+71e/MVf/LVf7MVe7LV5pvvuu+/W3/qt3/ruf/iHf/idf/iHf/ht/pe75pprHgxw5syZBwNcc801D+aZzpw586BrrrnmwTzTNddc82CAM2fOPPiaa655MP9B7rvvvlt5prNnz95633333coz3XfffbeePXv2GTzTfffddyvA2bNnbwW47777buU/yDXXXPNgXogzZ848mBfgmmuueTAvwJkzZx7Ev+Caa655MC/ANddc82BegDNnzjz4mmuueTAvovvuu+9WgH/4h3/47fvuu+9WgLNnzz7jvvvuu/Xs2bO33nfffbfyP8g111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bZ7p7Nmzz7jvvvue/vd///e//Q//8A+/8w//8A+/zX+za6655sGv/dqv/V7v9E7v9NkA9913362f9Vmf9Tr33XffrbwQn/u5n/tbL/ZiL/baAD/yIz/y2T/6oz/6OTwf11xzzYO/6Zu+6en33XffrZ/1WZ/1Ovfdd9+tPMDrvM7rvPeHf/iHf9eP/MiPfPaP/uiPfg5XXXXVVVdd9f8DetCDHsRVV1111VVX/X/zEz/xEwb4h3/4h99+sRd7sdf++q//+vf5rd/6re/mhfjcz/3c33qxF3ux177vvvtu/fqv//r3+Yd/+Iff5l/pdV7ndd77dV7ndd7rxV7sxV4b4L777rv1t37rt777t3/7t7/nvvvuu/XFXuzFXvtzP/dzfwvgvvvuu/Xrv/7r3+cf/uEffpv/Ya655poHv/Zrv/Z7vdM7vdNn8wC/9Vu/9d3/8A//8Du/9Vu/9d1c9SzXXHPNg3mmM2fOPBjgmmuueTDAmTNnHgRwzTXXPBjgmmuueTDAmTNnHgxwzTXXPJj/IPfdd9+t/AuuueaaB/N/zH333XfrNddc8+D77rvvVoCzZ8/eet99991633333QrwD//wD78D8A//8A+/zf9y11xzzYNf7MVe7LVf53Ve571e7MVe7LV5gPvuu+/W3/7t3/6eH/mRH/ls/pu9zuu8znu/4zu+42ddc801D77vvvtu/a3f+q3v/tEf/dHP4blcc801D/7wD//w73qxF3ux1wb4zM/8zNf5h3/4h9/mhfjwD//w73qd13md9/6t3/qt7/76r//69+EBPvdzP/e3XuzFXuy1f+u3fuu7v/7rv/59uOqqq6666qr/H9CDHvQgrrrqqquuuur/m5/4iZ8wwGd+5me+zud+7uf+1n333Xfrh3zIhzyEF+DDP/zDv+t1Xud13hvgMz/zM1/nH/7hH36bf4drrrnmwR/+4R/+XS/2Yi/22gD33Xffrf/wD//w26/zOq/z3gD/8A//8Nuf+Zmf+Tr8D3LNNdc8+LVf+7Xf653e6Z0+mwe47777bv2t3/qt7/7RH/3Rz+Gq/zQv9mIv9toA11xzzYPPnDnzoBd/8Rd/bYAzZ848+Jprrnkw/0fcd999twKcPXv21vvuu+/W++6771ae6ezZs8/gBbjvvvtu5QU4e/bsrffdd9+t/D9z5syZB734i7/467zYi73Ya73O67zOe/NM9913362/9Vu/9d2//du//T333Xffrfw3OXPmzINe53Ve573f6Z3e6bMB7rvvvlu//uu//n3+4R/+4bevueaaB7/jO77jZ73O67zOewPcd999t37913/9+/zDP/zDb/MvuOaaax78Td/0TU8H+KzP+qzX+fu///vfBnixF3ux1/7cz/3c3wL4kA/5kIfcd999t3LVVVddddVV/z+gBz3oQVx11VVXXXXV/zc/8RM/YYC3e7u30+d+7uf+1ou92Iu99td//de/z2/91m99N8/lwz/8w7/rdV7ndd4b4DM/8zNf5x/+4R9+m/8g11xzzYM//MM//Lte7MVe7LV5gA/5kA95yH333Xcr/82uueaaB7/2a7/2e73O67zOe19zzTUP5pnuu+++W3/rt37ru3/7t3/7e+67775bueqFuuaaax7MM505c+bB11xzzYMBzpw58yCe6ZprrnkwwDXXXPNggDNnzjz4mmuueTD/Qe67775beaazZ8/eCnDmzJkH8wJcc801D+Z/iPvuu+9WgLNnz95633333Xrffffdevbs2Wfcd999twKcPXv21vvuu+9WrnqBrrnmmgefOXPmwa/zOq/zXq/zOq/z3gD33Xffrf/wD//w27/1W7/1Pf/wD//w2/w3ueaaax78OZ/zOb91zTXXPPjs2bPPsO1rrrnmwTzT13/917/Pb/3Wb303/wof/uEf/l2v8zqv897/8A//8Duf+Zmf+doAn/u5n/tbL/ZiL/baP/qjP/o5P/IjP/LZXHXVVVddddX/H+hBD3oQV1111VVXXfX/yTXXXPPgb/qmb3o6wNu93dvpxV7sxV77cz/3c3/rvvvuu/VDPuRDHsIDvM7rvM57f/iHf/h3AXzmZ37m6/zDP/zDb/Mf6HVe53Xe+8M//MO/C+C+++679ZprrnkwwH333XfrP/zDP/z2b/3Wb33PP/zDP/w2/4WuueaaB7/2a7/2e734i7/4a7/Yi73Ya/NM9913362/9Vu/9d2//du//T333XffrVz1LNdcc82Dz5w58+AXe7EXey2AF3/xF3/tM2fOPBjgmmuueTD/Ae67775bAc6ePXsrwH333XcrwH333Xcrz3T27Nln3HfffbfyTGfPnr31vvvuu5X/YNdcc82DeSHOnDnzYF6Ia6655sG8AC/2Yi/2WgDXXHPNg8+cOfPga6655sG8iO67775bz549e+t99913K8B9991369mzZ59x33333QrwD//wD7/NVVxzzTUPfu3Xfu33eqd3eqfP5pnuu+++W7/+67/+ff7hH/7ht/kvds011zz4Hd/xHT/rdV7ndd6bB/iRH/mRz/7RH/3Rz+Hf4JprrnnwN33TNz0d4DM/8zNfB+BzP/dzfwvg7d7u7cRVV1111VVX/f+CHvSgB3HVVVddddVV/59cc801D/6mb/qmp9933323fsiHfMhDAD78wz/8u17ndV7nvX/rt37ru7/+67/+fQCuueaaB3/O53zOb11zzTUP/szP/MzX+Yd/+Iff5j/INddc8+AP//AP/64Xe7EXe22A3/qt3/rur//6r3+fa6655sGv/dqv/V7v9E7v9Nk802/91m9992/91m99zz/8wz/8Nv+JXuzFXuy1X+zFXuy13umd3umzeYAf+ZEf+eyzZ88+47d+67e+m//HrrnmmgcDvNiLvdhrnzlz5kHXXHPNg6+55poHv9iLvdhr8y+47777buWZzp49eyvAfffdd+t99913K8909uzZZwDcd999twKcPXv21vvuu+9WruKaa655MMCZM2cefM011zz4zJkzD7rmmmsefM011zwY4MyZMw++5pprHsyL4L777rsV4OzZs7fed999twL8wz/8w+8A3HfffbeePXv21vvuu+9W/h+45pprHvzar/3a7/VO7/ROn80z3Xfffbf+6I/+6Of81m/91nfzn+yaa6558Gu/9mu/1zu90zt9Ns9033333XrNNdc8GOBHfuRHPvtHf/RHP4d/o9d5ndd57w//8A//rvvuu+/Ws2fP3vpiL/Zir/0jP/Ijn/2jP/qjn8NVV1111VVX/f+CHvSgB3HVVVddddVV/59cc801D/6mb/qmp9933323fsiHfMhDAK655poHf87nfM5vXXPNNQ++7777bv2QD/mQh3zTN33T06+55poH/8iP/Mhn/+iP/ujn8B/kxV7sxV77cz/3c38L4L777rv167/+69/nH/7hH36bB7jmmmse/Nqv/drv9U7v9E6fzTP91m/91nf/1m/91vf8wz/8w2/zH+Saa6558Gu/9mu/1zu90zt9Ng9w33333fpbv/Vb3/2jP/qjn8P/I9dcc82DAV7sxV7stc+cOfOga6655sHXXHPNg1/sxV7stXkh7rvvvlvPnj1763333Xfrfffdd+s//MM//A7AP/zDP/w2V/2XuOaaax4McObMmQdfc801DwZ4sRd7sdcCuOaaax4M8GIv9mKvzYvg7Nmzz7jvvvueft999936D//wD7/zD//wD79933333cr/UWfOnHnQ67zO67z367zO67z3Nddc82CAs2fPPuM3f/M3v+tHf/RHP4f/YO/4ju/4Wa/zOq/z3tdcc82DeaYf+ZEf+ezf/u3f/p777rvv1td5ndd57w//8A//LoAf+ZEf+ewf/dEf/Rz+Da655poHf87nfM5vXXPNNQ/mmd7u7d5OXHXVVVddddX/P+hBD3oQV1111VVXXfX/yYu92Iu99ud+7uf+1j/8wz/89md+5me+Ds90zTXXPPhzPudzfuuaa655MM9033333fohH/IhD+E/yDu+4zt+1ju90zt9NsB9991362d91me9zn333XcrL8A111zz4Nd+7dd+r3d6p3f6bJ7pvvvuu/Uf/uEffvsf/uEffue+++679R/+4R9+m3+ld3zHd/ys13md13nva6655sE803333Xfrb/3Wb333j/7oj34O/8ddc801Dz5z5syDX+zFXuy1AF78xV/8tV/sxV7stXkh7rvvvlsB/uEf/uG377vvvlvPnj37jPvuu+/Wf/iHf/htrvpf45prrnkwwJkzZx58zTXXPBjgxV7sxV4L4Jprrnnwi73Yi702z8fZs2efcd999z39vvvuu/Uf/uEffue3fuu3vpv/Y6655poHv9iLvdhrv+M7vuNnXXPNNQ8GuO+++279rd/6re/+0R/90c/h3+Gaa6558Gu/9mu/1zu90zt9Ns9033333fpbv/Vb3/2jP/qjn8NzeZ3XeZ33/vAP//DvAvjRH/3Rz/mRH/mRz+bf4HVe53Xe+8M//MO/C+BHfuRHPvtHf/RHP4errrrqqquu+v8HPehBD+Kqq6666qqr/j95sRd7sdf+3M/93N/6h3/4h9/+zM/8zNfhAa655poHf87nfM5vXXPNNQ8G+Pqv//r3+a3f+q3v5t/pmmuuefCHf/iHf9eLvdiLvTbAj/zIj3z2j/7oj34OL6JrrrnmwS/2Yi/22q/zOq/z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+Iff5r/Bi73Yi732h3/4h3/XNddc8+D77rvv1t/+7d/+nh/5kR/5bP6Vrrnmmgd/+Id/+He92Iu92GsDfP3Xf/37vM7rvM57vdiLvdhrf/3Xf/37/NZv/dZ381w+/MM//Lte53Ve572//uu//n1+67d+67u56qqrrrrqqv9f0IMe9CCuuuqqq6666v+rD//wD/+u13md13nv++6779YP+ZAPeQgvgmuuuebB3/RN3/R0gN/6rd/67q//+q9/H4BrrrnmwR/+4R/+XS/2Yi/22gD33Xffrb/1W7/13T/6oz/6OfwrvM7rvM57f/iHf/h3AfzDP/zDb3/mZ37m6/Df7Jprrnnwa7/2a7/X67zO67z3Nddc82Ce6b777rv1t37rt777R3/0Rz+Hf8E111zzYIAXe7EXe+0Xe7EXey2Aa6655sEv9mIv9tq8APfdd9+tZ8+evfW+++679R/+4R9+57777rv17Nmzt95333238j/YNddc8+AzZ848+MVe7MVei2e65pprHnzNNdc8GODMmTMPBrjmmmsezH+A++6771ae6ezZs7cC3Hfffbfed999t/JMZ8+efQbAfffddyvPxzXXXPNgXoAzZ848iOfjmmuueTAvwDXXXPNgXoAzZ848mOdyzTXXPJgX0X333Xfr2bNnb73vvvtuBfiHf/iH3wG47777bj179uyt99133638H3PNNdc8+LVf+7Xf68Vf/MVf+8Ve7MVem+dy33333Xr27Nlb//7v//63/+Ef/uF3/uEf/uG3z5w586AXf/EXf50Xe7EXe63XeZ3XeW+e6b777rv167/+69/nH/7hH36b/2LXXHPNg1/7tV/7vd7pnd7pswH+4R/+4be//uu//n3uu+++W3kRXHPNNQ/+pm/6pqcD3Hfffbd+/dd//fv8wz/8w2+/zuu8znt/+Id/+Hfdd999t37Ih3zIQ3guH/7hH/5dr/M6r/PeX//1X/8+v/Vbv/XdXHXVVVddddX/L+hBD3oQV1111VVXXfX/1ed+7uf+1ou92Iu9NsBv/dZvfffXf/3Xvw8vxDXXXPPgz/mcz/mta6655sH/8A//8Nuf+Zmf+To8l9d5ndd579d5ndd5rxd7sRd7bYD77rvv1t/6rd/67h/90R/9HP4Fn/u5n/tbL/ZiL/baAD/yIz/y2T/6oz/6Ofw3uuaaax782q/92u/1Tu/0Tp/NM9133323/tZv/dZ3//Zv//b33Hfffbfy73TNNdc8GODFXuzFXhvgxV7sxV7rmmuuefCLvdiLvTYvwH333XcrwD/8wz/89j/8wz/8DsB999136z/8wz/8Nv9FrrnmmgefOXPmwS/2Yi/2WgAv/uIv/tpnzpx58DXXXPNg/pXuu+++W3mms2fP3nrffffdCnDffffdyjOdPXv2Gffdd9+tPNPZs2dvve+++27l/5BrrrnmwQBnzpx58DXXXPNgwC/2Yi/22gDXXHPNg8+cOfPga6655sG8CM6ePfsM2/6Hf/iH3wb4h3/4h98BuO+++249e/bsrffdd9+t/A9yzTXXPBjgzJkzD36xF3ux1wK45pprHnzNNdc85MVe7MVei+dy33333foP//APv33ffffd+g//8A+/8w//8A+/zQtxzTXXPPi1X/u13+ud3umdPptnuu+++279+q//+vf5h3/4h9/mv9jrvM7rvPeHf/iHfxfAfffdd+tv/dZvffeP/uiPfg4vxIu92Iu99ud+7uf+FsA//MM//PZnfuZnvg7PdM011zz4wz7sw77rxV/8xV/767/+69/nt37rt76bB3jHd3zHz3qnd3qnz/6RH/mRz/7RH/3Rz+Gqq6666qqr/n9BD3rQg7jqqquuuuqq/68+93M/97de7MVe7LUB7rvvvls/5EM+5CG8EJ/7uZ/7Wy/2Yi/22v/wD//w25/5mZ/5OrwQr/M6r/Per/M6r/NeL/ZiL/baAPfdd9+tv/Vbv/XdP/qjP/o5PJdrrrnmwZ/zOZ/zW9dcc82DAT7zMz/zdf7hH/7ht/lvcM011zz4tV/7td/rdV7ndd77mmuueTDPdN999936W7/1W9/9oz/6o5/Df5FrrrnmwWfOnHnwNddc8+AXe7EXe61rrrnmwS/2Yi/22rwA9913360A//AP//DbAP/wD//wO/fdd9+t//AP//Db/Btdc801D36xF3ux1z5z5syDAF78xV/8tV/sxV7stXkh7rvvvlvPnj1769///d//Ns909uzZZ9x333238kxnz5699b777ruVq/5Vzpw58yBJOnPmzIOvueaaBwO82Iu92GsBXHPNNQ8+c+bMg6+55poH8yK47777bpWk++677+n33Xffrf/wD//wOwC/9Vu/9d38B7vmmmsefObMmQdfc801Dz5z5syDAF78xV/8tc+cOfPga6655sG8EPfdd9+tAL/1W7/13QA/+qM/+jn8G505c+ZBr/M6r/Pe7/RO7/TZPNPZs2ef8SM/8iOf/Vu/9VvfzX+hM2fOPOh1Xud13vud3umdPhvg67/+69/nt37rt76b5+Md3/EdP+ud3umdPhvgt37rt77767/+69+H5/I6r/M67/3hH/7h33Xffffd+iEf8iEP4QE+/MM//Lte53Ve572//uu//n1+67d+67u56qqrrrrqqv9f0IMe9CCuuuqqq6666v+rz/3cz/2tF3uxF3ttnunrv/7r3+e3fuu3vpvn43M/93N/68Ve7MVe+7777rv1Qz7kQx7Ci+h1Xud13vsd3/EdP+uaa655MMB9991362/91m9994/+6I9+DsDrvM7rvPeHf/iHfxfAfffdd+tnfdZnvc599913K//F3vEd3/GzXvzFX/y1X+zFXuy1eab77rvv1t/6rd/67t/+7d/+nvvuu+9W/oe45pprHnzmzJkHX3PNNQ9+sRd7sde65pprHnzmzJkHX3PNNQ/mBbjvvvtuPXv27K333Xffrf/wD//wO/fdd9+t//AP//DbANdcc82Dz5w58+AXe7EXey2AF3/xF3/tM2fOPPiaa655MC/AfffddyvAP/zDP/z2fffdd+s//MM//A7AP/zDP/w2V/23O3PmzIOuueaah1xzzTUPBnixF3ux1wK45pprHnzmzJkHX3PNNQ/mhbjvvvtu/Yd/+Iff/od/+Iffue+++279h3/4h9/mBbjmmmseDPBiL/Zir33mzJkHAVxzzTUPvuaaax78Yi/2Yq/Ni+C+++67FeDs2bO3/v3f//1vA5w9e/YZ991339P/4R/+4Xf4D3bNNdc8+LVf+7Xf63Ve53Xe+5prrnkwwH333Xfrj/7oj37Ob/3Wb303/4Xe8R3f8bPe6Z3e6bMBfuu3fuu7v/7rv/59eIAP//AP/67XeZ3XeW+AH/mRH/nsH/3RH/0cno8zZ8486CM+4iO++8Ve7MVe++u//uvf57d+67e+m2f6pm/6pqdfc801D/7Mz/zM1/mHf/iH3+aqq6666qqr/n9BD3rQg7jqqquuuuqq/6++6Zu+6enXXHPNg7/+67/+fT78wz/8u+67775bP+RDPuQhPJfP/dzP/a0Xe7EXe+377rvv1s/6rM96nfvuu+9W/hWuueaaB7/Yi73Ya7/jO77jZ11zzTUPBrjvvvtu/Yd/+Ifffp3XeZ33Bvit3/qt7/76r//69+G/0DXXXPPg137t136vd3qnd/psHuBHfuRHPvsf/uEffucf/uEffpv/Ra655poHA7zYi73Ya585c+ZB11xzzYOvueaaB7/Yi73Ya/Pv9Fu/9VvfDfBbv/Vb3/MP//APv81V/+tdc801D7bta6655iHXXHPNg1/sxV7sta655poHv9iLvdhr81zOnj37DNv+h3/4h98GuOaaax58zTXXPOTMmTMP4kVw33333Xr27Nlb77vvvlvvu+++WwH+4R/+4XcA/uEf/uG3+W9yzTXXPPi1X/u13+t1Xud13vuaa655MMB9991362//9m9/z4/8yI98Nv9Frrnmmgd/0zd909MBfuRHfuSzf/RHf/Rzrrnmmgd/+Id/+He92Iu92GsDfOZnfubr/MM//MNv80K8zuu8znt/+Id/+Hfdd999t37Ih3zIQwBe53Ve570//MM//Lv+4R/+4bc/8zM/83W46qqrrrrqqv9/0IMe9CCuuuqqq6666v+rb/qmb3r6Nddc8+DP/MzPfJ13eqd3+qwXe7EXe+3P/MzPfJ1/+Id/+G2e6cVe7MVe+3M/93N/C+AzP/MzX+cf/uEffpt/o2uuuebBL/ZiL/ba7/iO7/hZ11xzzYN5pn/4h3/47c/8zM98Hf6LXHPNNQ/+8A//8O96sRd7sdfmme67775bf+u3fuu7f/RHf/Rz+F/ummuuefBrv/ZrvxfAi7/4i7/2mTNnHnzNNdc8mP9A9913360AZ8+evRXgvvvuu5Vnuu+++249e/bsMwDuu+++WwHOnj17K8B99913K1f9j3HNNdc8+MyZMw++5pprHnzmzJkHAbz4i7/465w5c+ZB11xzzYP5V/iHf/iH3/77v//73wY4e/bsM+67775b/+Ef/uG3+V/gmmuuefBrv/Zrv9frvM7rvPc111zzYID77rvv1t/6rd/67h/90R/9HP4LXHPNNQ/+pm/6pqcD/MiP/Mhnv87rvM57X3PNNQ++7777bv36r//69/mHf/iH3+ZfcM011zz4wz/8w7/rxV7sxV7767/+69/nt37rt777m77pm55+zTXXPPgzP/MzX+cf/uEffpurrrrqqquu+v8HPehBD+Kqq6666qqr/r/6pm/6pqdfc801D/6QD/mQh7zYi73Ya3/4h3/4d9133323fsiHfMhDeKZv+qZvevo111zz4M/8zM98nX/4h3/4bf6dXuzFXuy1P/dzP/e3eC733XffrT/6oz/6Ob/1W7/13fwnueaaax782q/92u/1Tu/0Tp8NcN999936W7/1W9/927/9299z33333cr/Utdcc82DX/u1X/u9AN7pnd7ps3kB7rvvvlvPnj1769///d//NsA//MM//M7Zs2dvPXPmzIOvueaaB/NMZ86cedA111zzYIBrrrnmwQBnzpx5MMA111zzYP4D3HfffbcCnD179laA++6771aA++6771aAs2fPPgPgvvvuuxXg7NmztwLcd999t3LV83XNNdc8mOfjzJkzD36xF3ux1wK45pprHnzNNdc8+MVe7MVemxfRfffdd+vZs2dvve+++2697777br3mmmse/GIv9mKvfc011zyY53L27Nln/P3f//1v/cM//MPv3Hfffbf+wz/8w2/zv8g111zz4Bd7sRd77Xd8x3f8rGuuuebBAPfdd9+tv/Vbv/XdP/qjP/o5/Cd7x3d8x896p3d6p8/mmf7hH/7htz/zMz/zdfhXeJ3XeZ33/vAP//Dvuu+++2790R/90c/+8A//8O/+h3/4h9/+zM/8zNfhqquuuuqqq/5/Qg960IO46qqrrrrqqv+vvumbvunp11xzzYM/5EM+5CEA3/RN3/R0gM/8zM98nX/4h3/47dd5ndd57w//8A//rn/4h3/47c/8zM98Hf6d3vEd3/Gz3umd3umzAf7hH/7ht7/+67/+fV77tV/7vV7ndV7nva+55poHA9x33323fv3Xf/37/MM//MNv8x/kmmuuefBrv/Zrv9c7vdM7fTbP9CM/8iOf/aM/+qOfw/9C11xzzYNf7MVe7LXPnDnzoNd5ndd572uuuebBPMB999136z/8wz/89n333XfrP/zDP/zO2bNnb73vvvtu5T/QNddc82CAM2fOPBjgmmuueTDAmTNnHgRwzTXXPBjgmmuueTDAmTNnHgxwzTXXPJh/p/vuu+9Wnuns2bO3Atx33323Atx33323Apw9e/YZAPfdd9+tAGfPnr0V4L777ruV53LNNdc8mOfjzJkzD+b5uOaaax7M83HmzJkH8QJcc801D+bZBBjgmmuueTBXCDAPcM011zzEtnmAa6655sH8B7rvvvtuPXv27K333Xffrffdd9+tAP/wD//w24D+4R/+4bd5Ic6cOfOgF3/xF3+dF3uxF3uta6655sEv9mIv9to8l/vuu+9WSfr7v//73/qHf/iH37nvvvtu/Yd/+Iff5n+4M2fOPOjFX/zFX+cd3/EdP+uaa655MMDZs2ef8Zu/+Zvf9aM/+qOfw3+wa6655sGv/dqv/V7v9E7v9Nk8wI/8yI989o/+6I9+Dv8K11xzzYM//MM//Lte7MVe7LV5ps/8zM98nX/4h3/4ba666qqrrrrq/yf0oAc9iKuuuuqqq676/+onfuInDPB2b/d2Anid13md936d13md9zpz5syDP+uzPut1PvzDP/y7XuzFXuy1v/7rv/59fuu3fuu7+Te65pprHvzhH/7h3/ViL/Zirw3wIz/yI5/9oz/6o5/DM11zzTUPfu3Xfu33ep3XeZ33vuaaax4McN9999369V//9e/zD//wD7/Nv8M7vuM7ftY7vdM7fTbP9CM/8iOf/du//dvfc999993K/xLXXHPNg8+cOfPgF3uxF3utF3/xF3/tF3uxF3ttHuC+++679ezZs7f+/d///W//9m//9vfcd999t/I/3DXXXPNggDNnzjwY4JprrnkwwJkzZx4EcM011zwY4JprrnkwwJkzZx4McM011zyYq56v++6771aej7Nnz97693//978NcPbs2Wfcd999t549e/bW++6771b+g505c+ZBL/7iL/46L/ZiL/Za11xzzYNf7MVe7LV5Lvfdd9+tZ8+efcbf//3f/9Y//MM//M4//MM//Db/Q11zzTUPfrEXe7HXfp3XeZ33erEXe7HXBrjvvvtu/a3f+q3v/tEf/dHP4d/pmmuuefA7vuM7ftbrvM7rvDfP9CM/8iOfDfBO7/ROn33ffffd+qM/+qOf81u/9Vvfzb/C67zO67z3h3/4h38XwH333Xfrh3zIhzyEq6666qqrrvr/Cz3oQQ/iqquuuuqqq/6/+omf+AkDvN3bvZ14ps/93M/9rRd7sRd77fvuu+/Wa6655sEAb/d2byf+jV7sxV7stT/3cz/3twDuu+++W7/+67/+ff7hH/7ht3k+rrnmmge/9mu/9nu90zu902fzTPfdd9+tX//1X/8+//AP//Db/Cu82Iu92Gt/+Id/+Hddc801Dwa47777bv2sz/qs17nvvvtu5X+Ba6655sGv/dqv/V4v/uIv/tov9mIv9to8l/vuu+/W3/qt3/ruf/iHf/idf/iHf/ht/h+55pprHswznTlz5sEA11xzzYMBzpw58yCAa6655sEA11xzzYMBzpw582CAa6655sE8l/vuu+9Wno+zZ8/eyvNx33333crzcd99993KC3D27Nln8GwGBHDffffdyhUGxAPcd999T5ckHuC+++67lf9FrrnmmgefOXPmQddcc81DXuzFXuy1Xud1Xue9eS733Xffrf/wD//w2//wD//wO7/1W7/13fwP9Tqv8zrv9Tqv8zrv/WIv9mKvDXDffffd+tu//dvf8yM/8iOfzb/SO77jO37W677u677PmTNnHgRw33333fpbv/Vb3/2jP/qjn8MzveM7vuNnvdM7vdNnnz179hlf93Vf997/8A//8Nu8iK655poHf87nfM5vXXPNNQ/+kR/5kc/+0R/90c/hqquuuuqqq/7/Qg960IO46qqrrrrqqv+vfuInfsIAb/d2byee6Zprrnnwh3/4h3/Xi73Yi702wI/8yI989o/+6I9+Dv8G7/iO7/hZ7/RO7/TZAP/wD//w25/5mZ/5OrwIrrnmmge/9mu/9nu90zu902fzTL/1W7/13b/1W7/1Pf/wD//w27wQ11xzzYM//MM//Lte7MVe7LUB7rvvvlu//uu//n3+4R/+4bf5H+yaa6558Gu/9mu/14u/+Iu/9ou92Iu9Ns/lvvvuu/W3fuu3vvsf/uEffucf/uEffpurrvpf6pprrnnwi73Yi73Wi73Yi732Nddc8+AXe7EXe22e6b777rv1H/7hH377t37rt77nH/7hH36b/4Fe53Ve571f53Ve571e7MVe7LUB7rvvvls/67M+63Xuu+++W/kXvOM7vuNnvc7rvM57X3PNNQ8GuO+++279rd/6re/+0R/90c/h+XjHd3zHz3qnd3qnz77vvvtu/fqv//r3+Yd/+Iff5kXwOq/zOu/94R/+4d8F8Fu/9Vvf/fVf//Xvw1VXXXXVVVf9/4Ue9KAHcdVVV1111VX/X/3ET/yEAd7u7d5OPMCLvdiLvfbnfu7n/hbAfffdd+vXf/3Xv88//MM//Db/Cu/4ju/4Wa/zOq/z3tdcc82Df+RHfuSzf/RHf/Rz+Fe65pprHvzar/3a7/VO7/ROn80z/dZv/dZ3/9Zv/db3/MM//MNv8wDXXHPNg9/xHd/xs17ndV7nvQHuu+++W3/rt37ru3/0R3/0c/gf6Jprrnnwa7/2a78XwDu90zt9Ns/lvvvuu/W3fuu3vvsf/uEffucf/uEffpurrvo/6pprrnnwa7/2a7/Xi7/4i7/2i73Yi702z3Tffffd+g//8A+/81u/9Vvf/Q//8A+/zf8w11xzzYM/53M+57euueaaB9933323/tZv/dZ3/+iP/ujn8FyuueaaB7/2a7/2e73TO73TZ/NM9913362/9Vu/9d0/+qM/+jm8ENdcc82DX/u1X/u93umd3umz77vvvls/67M+63Xuu+++W/kXfO7nfu5vvdiLvdhrA/zDP/zDb3/mZ37m63DVVVddddVV/3+hBz3oQVx11VVXXXXV/0fXXHPNg7/pm77p6ffdd9+tH/IhH/IQHuDDP/zDv+t1Xud13vu+++679Zprrnnwfffdd+vXf/3Xv88//MM//DYvghd7sRd77c/93M/9LYDP/MzPfJ1/+Id/+G3+Ha655poHv/Zrv/Z7vdM7vdNn80z33Xffrf/wD//w2//wD//wO2fOnHnQO73TO302wH333Xfrb/3Wb333j/7oj34O/4Ncc801D37t137t9wJ4p3d6p8/mudx33323/tZv/dZ3A/zoj/7o53DVVf8PXXPNNQ9+7dd+7fd68Rd/8dd+sRd7sdfmme67775bf+u3fuu7/+Ef/uF3/uEf/uG3+R/izJkzD3qd13md936nd3qnzwb4kR/5kc/+0R/90c8BuOaaax782q/92u/1Tu/0Tp/NM9133323/uiP/ujn/NZv/dZ38yI6c+bMg97pnd7ps1/ndV7nve+7775bP+uzPut17rvvvlt5AV7ndV7nvT/8wz/8u3imf/iHf/jtz/zMz3wdrrrqqquuuur/L/SgBz2Iq6666qqrrvr/6JprrnnwN33TNz39vvvuu/VDPuRDHsID/MRP/IQBPvMzP/N1XuzFXuy13umd3umz77vvvlt/67d+67t/9Ed/9HN4IV7sxV7stT/3cz/3twC+/uu//n1+67d+67v5D3LNNdc8+MVe7MVe+3Ve53Xe68Ve7MVem+dy33333fohH/IhD+F/iGuuuebBr/3ar/1er/M6r/Pe11xzzYN5gPvuu+/Wf/iHf/jt++6779Yf/dEf/Ryuuuqq53DNNdc8+LVf+7Xf63Ve53Xe+5prrnkwz3T27Nln/OZv/uZ3/cM//MPv/MM//MNv8z/AO77jO37WO73TO302wNmzZ5/xm7/5m9/1Tu/0Tp/NM/3DP/zDb//Ij/zI5/zDP/zDb/NvcM011zz4wz/8w7/rxV7sxV77vvvuu/WzPuuzXue+++67lefjcz/3c3/rxV7sxV77t37rt777dV7ndd77H/7hH377Mz/zM1+Hq6666qqrrvr/i8pVV1111VVXXfUc3vEd3/GzAH7rt37ru//hH/7ht//hH/7htwHe6Z3e6bNf53Ve570BfvRHf/RzeD6uueaaB3/u537ubwH8wz/8w2//1m/91nfzH+i+++679b777vvuM2fOPOjFXuzFXpvncs011zz4J37iJ3zffffd+lu/9Vvf/Q//8A+/8w//8A+/zX+xa6655sHv+I7v+Fmv8zqv894803333Xfr2bNnb/37v//73/6Hf/iH3/mHf/iH3+aqq656ge67775bf/RHf/RzfvRHf/Rzrrnmmge/9mu/9nu9zuu8zntfc801D36nd3qnzwa47777bv2t3/qt7/6Hf/iH3/mHf/iH3+a/yY/+6I9+zj/8wz/8zud+7uf+1pkzZx70Tu/0Tp8N8CM/8iOf/du//dvfc999993Kv8N9991369d//de/z4d/+Id/14u92Iu99ud+7uf+9gd/8Ac/mOfyYi/2Yq/9Yi/2Yq8N8Fu/9Vvf8zqv8zrvzVVXXXXVVVddReWqq6666qqr/p86c+bMg++7775bz549eysP8Dqv8zrvDfBbv/Vb38Mz/eiP/ujnALzTO73TZ7/O67zOewP86I/+6OfwXD78wz/8uwD+4R/+4bc/8zM/83X4D/ZiL/Zir/3hH/7h33XNNdc8GOC+++679eu//uvf5+zZs7e+2Iu92Gu/zuu8znu92Iu92Gtfc801D36nd3qnzwa47777bv2Hf/iH3/6t3/qt7/mHf/iH3+Y/yTXXXPPg137t136v13md13nva6655sE803333Xfrj/7oj37Ob/3Wb303V/2nu+aaax4McObMmQcDXHPNNQ8+c+bMg3ima6655sE8H/fdd9+tPJezZ88+g+fjvvvuu5UX4OzZs7fyXO67775buerf5b777rv1R3/0Rz/nt3/7t7/nzJkzD3qd13md936d13md977mmmse/E7v9E6fDXDffffd+lu/9Vvf/du//dvfc999993Kf5F3fMd3/KzXeZ3Xee9rrrnmwQD33Xffrddcc82DAV7ndV7nvX/7t3/7e/gPcN9999369V//9e/zOZ/zOb91zTXXPPibvumbnv4hH/IhD+EB3umd3umzAH7kR37ks8+ePXsrwJkzZx7MVVddddVVV/3/hh70oAdx1VVXXXXVVf9f/cRP/IQBPvMzP/N1/uEf/uG3X+d1Xue9P/zDP/y7/uEf/uG3P/MzP/N1eC7v+I7v+Fnv9E7v9NkAP/IjP/LZP/qjP/o5PNPnfu7n/taLvdiLvfZ9991364d8yIc8hP9A11xzzYM//MM//Lte7MVe7LUB7rvvvlt/9Ed/9HN+67d+67t5Ltdcc82DX+zFXuy1X+zFXuy1Xud1Xue9eYD77rvv1n/4h3/47X/4h3/4nd/6rd/6bv4DXHPNNQ9+x3d8x896ndd5nffmme67775bf+u3fuu7f/RHf/RzuOpf5ZprrnkwwJkzZx4McM011zwY4MyZMw8CuOaaax4McM011zwY4MyZMw++5pprHsz/Qvfdd9+tPNPZs2efAfi+++679b777rv17Nmzz7jvvvtuBfiHf/iH3+aq53HNNdc8+MVe7MVe+8Ve7MVe63Ve53Xemwe47777bv3RH/3Rz/mt3/qt7+Y/yTu+4zt+1uu+7uu+z5kzZx4EcN999936W7/1W9/9oz/6o5/zYi/2Yq/94R/+4d91zTXXPPi+++679bd/+7e/50d+5Ec+m/8A11xzzYM/53M+57cAfvRHf/Rzfuu3fuu7AV7sxV7stT/3cz/3twDe7u3eTtdcc82Dv+mbvunp9913360f8iEf8hCuuuqqq6666v8v9KAHPYirrrrqqquu+v/qHd/xHT/rnd7pnT77H/7hH377Mz/zM1/nm77pm55+zTXXPPjrv/7r3+e3fuu3vpvn4x3f8R0/653e6Z0+G+BHfuRHPvtHf/RHP+cd3/EdP+ud3umdPhvgMz/zM1/nH/7hH36b/yAv9mIv9tqf+7mf+1sA9913362/9Vu/9d0/+qM/+jm8CK655poHA7z2a7/2e734i7/4a7/Yi73Ya/NM9913361nz5699bd+67e+5x/+4R9++7777ruVF9E111zz4Nd+7dd+r3d6p3f6bB7gt37rt777H/7hH37nt37rt76b/+euueaaBwO82Iu92GsDnDlz5kE80zXXXPPga6655sEAZ86ceTDANddc82D+A9x33323Apw9e/ZWgPvuu+/W++6771ae6ezZs8/g+Thz5syDeC7XXHPNg3k+rrnmmgfzApw5c+bBPJdrrrnmwfw73XfffbcCnD179hn33Xff0//hH/7hdwDuu+++W8+ePXvrfffddyv/j505c+ZBL/7iL/46L/ZiL/Zar/M6r/PePNN9991369mzZ2/9rd/6re/5rd/6re/m3+maa6558Gu/9mu/1zu90zt9Ns9033333fpbv/Vb3/2jP/qjn8MDXHPNNQ9+7dd+7fd6p3d6p88G+JEf+ZHP/tEf/dHP4T/AmTNnHvTN3/zNt9533323fsiHfMhDXuzFXuy1P/dzP/e37rvvvlt/67d+67t/9Ed/9HOuueaaB3/TN33T0++7775bP+RDPuQhXHXVVVddddX/X+hBD3oQV1111VVXXfX/1TXXXPPgb/qmb3r6fffdd+s//MM//PbrvM7rvDfA273d24kX4h3f8R0/653e6Z0+G+C3fuu3vvt1Xud13hvgMz/zM1/nH/7hH36b/yDv+I7v+Fnv9E7v9NkAv/Vbv/XdX//1X/8+/Dtcc801D36xF3ux136d13md93qxF3ux1+YB7rvvvlt/67d+67v/4R/+4Xf+4R/+4bd5Pq655poHv+M7vuNnvc7rvM5780z33Xffrb/1W7/13T/6oz/6Ofw/dM011zz4zJkzD36xF3ux1wJ48Rd/8dd+sRd7sdfm3+i+++67FeDs2bO3Atx33323Atx33323Apw9e/YZAPfdd9+tAGfPnr31vvvuu5X/ha655poH80y2fc011zzkmmuuefCZM2cedM011zz4mmuuefCZM2cefM011zyYF8F9991369mzZ2+97777bgX0D//wD78NcN9999169uzZW++7775b+X/gmmuuefCLvdiLvfaLvdiLvdbrvM7rvDfPdN9999369V//9e/zD//wD7/Nv8I111zz4Nd+7dd+rxd/8Rd/nRd7sRd7LZ7pvvvuu/VHf/RHP/u3fuu3vocX4h3f8R0/653e6Z0+G+C+++679bM+67Ne57777ruVf6fP/dzP/a0Xe7EXe+1/+Id/+O0Xe7EXe22Af/iHf/jtz/zMz3wdnuknfuInDPB2b/d24qqrrrrqqqv+/0IPetCDuOqqq6666qr/zz73cz/3t17sxV7stXmmr//6r3+f3/qt3/pu/gWv8zqv894f/uEf/l0809d//de/z2/91m99N/8Brrnmmgd/+Id/+He92Iu92GsD/MiP/Mhn/+iP/ujn8B/ommuuefCLvdiLvfaLvdiLvdbrvM7rvDcPcN999936D//wD7/9W7/1W99z9uzZW1/7tV/7vd7pnd7ps3mAH/mRH/nsf/iHf/idf/iHf/ht/h+45pprHvxiL/Zir33mzJkHXXPNNQ++5pprHvxiL/Zir80LcN99990K8A//8A+/DXDffffdyjOdPXv2Gffdd9+tAGfPnr0V4L777ruVq16ga6655sEAL/ZiL/ZagF7sxV7stQCuueaaB585c+bB11xzzYP5F5w9e/YZtn327Nlb77vvvlsB/uEf/uF37rvvvlsB/uEf/uG3+T/mmmuuefBrv/Zrv9frvM7rvPc111zzYID77rvv1q//+q9/n3/4h3/4bZ6Pa6655sGv/dqv/V4v/uIv/tov9mIv9to8wH333Xfr2bNnb/2RH/mRz/mHf/iH3+ZFdObMmQd97ud+7m9fc801D77vvvtu/a3f+q3v/tEf/dHP4d/hxV7sxV77cz/3c3+LZ/qt3/qt7/76r//69+EBfuInfsIAb/d2byeuuuqqq6666v8v9KAHPYirrrrqqquu+v/sxV7sxV77cz/3c3+LZ3q7t3s78SK45pprHvxN3/RNT+eZfuRHfuSzf/RHf/Rz+He65pprHvw5n/M5v3XNNdc8+L777rv167/+69/nH/7hH36b/0TXXHPNg1/sxV7stV/sxV7stV7sxV7sta+55poH83zcd999t/7Wb/3Wd//oj/7o5/B/0DXXXPNggBd7sRd77TNnzjzoxV/8xV/7zJkzD77mmmsezAtw33333Xr27Nlb//7v//63Af7hH/7hd/7hH/7ht7nqv9w111zz4DNnzjz4mmuueTDgF3uxF3ttgGuuuebBL/ZiL/ba/Av+4R/+4bfPnDnz4H/4h3/4nX/4h3/47X/4h3/47fvuu+9W/g+45pprHvzar/3a7/VO7/ROn80z3Xfffbd+/dd//fucPXv21td+7dd+L4B3eqd3+myey3333Xfrb/3Wb333P/zDP/z2P/zDP/wO/0bXXHPNg1/7tV/7vd7pnd7pswH+4R/+4bc/8zM/83X4N/rwD//w73qd13md9wb4rd/6re/++q//+vfhufzET/yEAd7u7d5OXHXVVVddddX/X+hBD3oQV1111VVXXfX/3ed+7uf+1ou92Iu99m/91m9999d//de/Dy+Cz/3cz/2tF3uxF3vtf/iHf/jtF3uxF3ttgN/6rd/67q//+q9/H/6NXuzFXuy1P/dzP/e3AO67775bP+uzPut17rvvvlv5L3LNNdc8+LVf+7Xf653e6Z0+m+fjvvvuu/Xs2bO3/v3f//1v/8M//MPv/MM//MNv87/QNddc8+AzZ848+MVe7MVeC+DFX/zFX/vFXuzFXpsX4r777rv17Nmzt/793//9b589e/YZ9913363/8A//8Ntc9b/GmTNnHiRJZ86cefA111zz4DNnzjzommuuefA111zzYIAXe7EXe22ey3333XfrP/zDP/z2P/zDP/zOfffdd+s//MM//Db/i505c+ZB7/RO7/TZr/M6r/PevAD33Xffrb/1W7/13QA/+qM/+jn8B3vHd3zHz3qnd3qnzwa47777bv36r//69/mHf/iH3+Zf4XM/93N/68Ve7MVem2e67777bv2QD/mQh/Bcvumbvunp11xzzYM/5EM+5CH33XffrVx11VVXXXXV/0/oQQ96EFddddVVV131/907vuM7ftY7vdM7ffZ9991364d8yIc8hH/B537u5/7Wi73Yi732fffdd+uHfMiHPOSaa6558Dd90zc9HeC3fuu3vvvrv/7r34d/pXd8x3f8rHd6p3f6bIB/+Id/+O3P/MzPfB3+i7zjO77jZ734i7/4a7/Yi73Ya/NM9913362/9Vu/9d2//du//T0v9mIv9tqv8zqv814v9mIv9to8wH333Xfrb/3Wb333P/zDP/zOP/zDP/w2/8Ncc801Dz5z5syDX+zFXuy1rrnmmgdfc801D36xF3ux1+YFuO+++24F+Id/+Iffvu+++249e/bsM+67775b/+Ef/uG3uer/vGuuuebBZ86cefA111zzoNd5ndd57xd7sRd7bZ7Lfffdd+vZs2dvve+++279h3/4h9/5rd/6re/mf7hrrrnmwWfOnHnwi73Yi73W677u677PmTNnHsQL8Jmf+Zmv8w//8A+/zX+ya6655sEf/uEf/l0v9mIv9tr/8A//8Nt///d//9s/+qM/+jm8CD73cz/3t17sxV7stQE+8zM/83Xe6Z3e6bNe7MVe7LW//uu//n1+67d+67t5gG/6pm96+jXXXPPgD/mQD3nIfffddytXXXXVVVdd9f8TetCDHsRVV1111VVX/X/34R/+4d/1Oq/zOu8N8Jmf+Zmv8w//8A+/zQvwju/4jp/1Tu/0Tp8N8Jmf+Zmv8w//8A+/DXDNNdc8+HM+53N+65prrnnwfffdd+uP/uiPfs5v/dZvfTcvgs/93M/9rRd7sRd7bYAf+ZEf+ewf/dEf/Rz+C7zjO77jZ734i7/4a7/Yi73Ya/NMP/IjP/LZv/3bv/0999133608l2uuuebBL/ZiL/baL/ZiL/Zar/M6r/PePMB9991369mzZ2+97777bv2Hf/iH37nvvvtu/Yd/+Iff5r/QNddc8+DXfu3Xfq9rrrnmwS/2Yi/22tdcc82DeT7uu+++W8+ePXvr3//93/82wD/8wz/8zj/8wz/8Nldd9VyuueaaB7/Yi73Ya7/Yi73Ya11zzTUPfrEXe7HX5rncd999t/7DP/zDb//DP/zD79x33323/sM//MNv89/ommuuefCZM2ce/GIv9mKv9eIv/uKv/WIv9mKvzQPcd999t549e/bWv//7v//tf/iHf/idF3uxF3utd3qnd/psgPvuu+/Wf/iHf/jtH/3RH/2c++6771b+E505c+ZBr/M6r/Pe7/RO7/TZ9913361f//Vf/z7/8A//8Nu8ANdcc82DP/zDP/y7XuzFXuy177vvvlu//uu//n3+4R/+4bdf53Ve570//MM//LvOnj37jA/+4A9+MA/wTd/0TU+/5pprHvyZn/mZr/MP//APv81VV1111VVX/f+EHvSgB3HVVVddddVV/999+Id/+He9zuu8znsD/MM//MNvf+Znfubr8Hy82Iu92Gt/7ud+7m8BfOZnfubr/MM//MNv8wDXXHPNgz/ncz7nt6655poHA9x33323fv3Xf/37/MM//MNv83xcc801D/7wD//w73qxF3ux177vvvtu/fqv//r3+Yd/+Iff5j/Zi73Yi732h3/4h3/XNddc82CA++6779bf+q3f+u4f/dEf/RxeRNdcc82Dz5w58+DXeZ3Xea9rrrnmwWfOnHnwNddc82Cey3333Xfr2bNnb73vvvtu/Yd/+Iffue+++279h3/4h9/mP8A111zz4DNnzjz4xV7sxV7rdV7ndd77mmuueTAPcN9999169uzZW//+7//+twH+4R/+4Xf+4R/+4be56qp/o2uuuebBL/ZiL/baZ86cedCLv/iLv/aLvdiLvTbP5b777rv17Nmzt/793//9b//DP/zD7/zDP/zDb/Of7Jprrnnwa7/2a7/Xi7/4i7/2i73Yi702z+W+++679bd+67e++x/+4R9++x/+4R9+h+dyzTXXPPi1X/u13+ud3umdPhvg7Nmzz/j7v//73/rRH/3Rz7nvvvtu5T/RO77jO37WO73TO332fffdd+tnfdZnvc599913K8/lmmuuefA3fdM3PR3gvvvuu/VDPuRDHsIzXXPNNQ/+8A//8O96sRd7sdf+zM/8zNf5h3/4h9/mmT7ncz7nt178xV/8tT/zMz/zdf7hH/7ht7nqqquuuuqq/5/Qgx70IK666qqrrrrq/7sP//AP/67XeZ3XeW+e6TM/8zNf5x/+4R9+mwe45pprHvxN3/RNTwf4zM/8zNf5h3/4h9/m+bjmmmse/Nqv/drv9Tqv8zrvfc011zwY4Ld+67e++0d/9Ec/57777ruVZ3qxF3ux1/7cz/3c3wK47777bv2sz/qs17nvvvtu5T/RNddc8+B3fMd3/KzXeZ3XeW+A++6779Yf/dEf/Zzf+q3f+m7+na655poHnzlz5sHXXHPNg1/sxV7sta655poHv9iLvdhr8wLcd999t549e/bW++6779Z/+Id/+J377rvv1n/4h3/4bf4F11xzzYNf+7Vf+71e/MVf/LVf7MVe7LV5gPvuu+/Wf/iHf/jt++6779Yf/dEf/Ryuuuo/2TXXXPNggBd7sRd77Rd7sRd7rWuuuebBL/ZiL/baPJf77rvv1n/4h3/47X/4h3/4nfvuu+/Wf/iHf/ht/h2uueaaB7/2a7/2e734i7/4a7/Yi73Ya/Nc7rvvvlt/67d+67v/4R/+4Xf+4R/+4bd5EV1zzTUPfu3Xfu33eqd3eqfPBrjvvvtu/a3f+q3v/u3f/u3vue+++27lP8E111zz4Hd8x3f8rNd5ndd577Nnzz7jMz/zM1/7vvvuu5VnerEXe7HX/tzP/dzfAviHf/iH3/7Mz/zM1+G5vM7rvM57f/iHf/h33Xfffbd+yId8yEN4pp/4iZ/wfffdd+uHfMiHPISrrrrqqquu+v8LPehBD+Kqq6666qqr/r/78A//8O96ndd5nfe+7777br3mmmse/Fu/9Vvf/fVf//XvwwN8+Id/+He9zuu8znv/yI/8yGf/6I/+6OfwL7jmmmse/Nqv/drv9U7v9E6fDXDffffd+lu/9Vvf/du//dvf89qv/drv9U7v9E6fDfAP//APv/2Zn/mZr8N/omuuuebBr/3ar/1e7/RO7/TZPNOP/MiPfPaP/uiPfg7/ya655poHnzlz5sHXXHPNg1/sxV7sta655poHv9iLvdhr8wLcd999t549e/bW++6779Z/+Id/+J377rvv1hd7sRd7rWuuuebBr/M6r/PePJf77rvv1t/6rd/67n/4h3/4nX/4h3/4ba666r/ZNddc8+AXe7EXe+0Xe7EXe61rrrnmwS/2Yi/22jyXs2fPPuPv//7vf+sf/uEffue3fuu3vpt/wTXXXPPg137t136vF3/xF3/tF3uxF3ttnst9991362/91m999z/8wz/8zj/8wz/8Nv9OZ86cedDrvM7rvPc7vdM7fTbAfffdd+tv//Zvf89v/dZvffd99913K//Brrnmmgd/+Id/+He92Iu92Gvfd999t37Ih3zIQwBe7MVe7LU/93M/97cA/uEf/uG3P/MzP/N1eD6uueaaB3/O53zOb11zzTUP/szP/MzX+Yd/+Ifffp3XeZ33/vAP//Dv+od/+Iff/szP/MzX4aqrrrrqqqv+/0IPetCDuOqqq6666qr/7z78wz/8u17ndV7nvX/kR37ks9/pnd7ps++7775bP+RDPuQhPNOLvdiLvfbnfu7n/hbA273d24l/hWuuuebBr/3ar/1e7/RO7/TZPJcf+ZEf+ewf/dEf/Rz+E73jO77jZ73TO73TZ/NMP/IjP/LZP/qjP/o5/De75pprHvxiL/Zirw3wYi/2Yq91zTXXPPjFXuzFXpsXwX333Xfrb/3Wb333j/7oj34OV131P9yZM2cedM011zzkmmuuefCLvdiLvdbrvM7rvDcPcN999936D//wD7/9D//wD7/zW7/1W999zTXXPPjMmTMPfrEXe7HXAnind3qnz+a53Hfffbf+1m/91ncD/OiP/ujn8J/kmmuuefBrv/Zrv9c7vdM7fTbAfffdd+tv/dZvffeP/uiPfg7/wa655poHf87nfM5vXXPNNQ/+rd/6re/+h3/4h9/58A//8O8C+K3f+q3v/vqv//r34YV4ndd5nff+8A//8O/6h3/4h9/+zM/8zNf5pm/6pqdfc801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3XffrV//9V//Pi/2Yi/2Wu/0Tu/02WfPnn3G133d1733P/zDP/w2L4Jv+qZvevo111zz4N/6rd/67q//+q9/H6666qqrrrrqKvSgBz2Iq6666qqrrvr/7pu+6Zuefs011zz4Qz7kQx5y33333XrNNdc8+B3f8R0/63Ve53Xem2d6u7d7O/GvcM011zz4m77pm54O8CM/8iOf/aM/+qOfwwtwzTXXPPi1X/u13+ud3umdPptn+q3f+q3v/tEf/dHPue+++27lBbjmmmse/OEf/uHf9WIv9mKvDXDffffd+vVf//Xv8w//8A+/zX+ja6655sHv+I7v+Fmv8zqv894803333Xfrb/3Wb333P/zDP/zOP/zDP/w2/w2uueaaBwO82Iu92Gu/2Iu92Gtdc801Dz5z5syDr7nmmgffd999t15zzTUP5l/hvvvuu5VnOnv27K333XffrTzTfffdd+vZs2efAXDffffdCnD27NlbAe67775b+Q90zTXXPBjgzJkzDwa45pprHgxw5syZBwFcc801DwZ0zTXXPAjgzJkzDz579uytgADzTPfdd9+tgADzAPfdd9+tPJezZ88+g+fjvvvuu5Xn4+zZs7fyXO67775b+W9wzTXXPBjgxV7sxV77zJkzDwJ48Rd/8dcGeLEXe7HX5l9w33333QrwD//wD79933333QrwD//wD78D8A//8A+/zX+wa6655sEv9mIv9tqv8zqv814v9mIv9to803333XfrP/zDP/z2b/3Wb33PP/zDP/w2/w3OnDnzoNd5ndd573d6p3f6bIAf+ZEf+ewf/dEf/RxeBNdcc82DX/u1X/u93umd3umzeaav//qvf5/f+q3f+m6e6R3f8R0/653e6Z0++7777rv1sz7rs17nvvvuu5UX4sVe7MVe+3M/93N/C+BHfuRHPvtHf/RHP4errrrqqquuugo96EEP4qqrrrrqqqv+v/umb/qmp19zzTUP/pAP+ZCH3HfffbcCXHPNNQ/+pm/6pqcD3Hfffbd+yId8yEP4V/jcz/3c33qxF3ux1/6Hf/iH3/7Mz/zM1+FFcM011zz4tV/7td/rnd7pnT4b4L777rv1t37rt777R3/0Rz+HB7jmmmse/Nqv/drv9U7v9E6fDXDffffd+lu/9Vvf/aM/+qOfw3+Ta6655sGv/dqv/V6v8zqv897XXHPNg3mmH/mRH/ns3/7t3/6e++6771b+h7rmmmsefObMmQcDXHPNNQ8GOHPmzIMArrnmmgcDXHPNNQ8GOHPmzIOvueaaB/PvdN99993KM509e/ZWgPvuu+9WgPvuu+/Ws2fPPuPMmTMP4pmuueaaB19zzTUP5pnOnDnz4GuuuebB/B9w33333SpJtv0P//APvw3wD//wD78DcN999936D//wD7/NA1xzzTUP5vk4c+bMg3mAa6655sFnzpx5EMCLv/iLvzagF3uxF3st/gX33XffrQD/8A//8Nv33XffrQD/8A//8NuA/uEf/uG3+W90zTXXPPi1X/u13+vFX/zFX/vFXuzFXptnOnv27DN+8zd/87v+4R/+4Xf+4R/+4bf5L/aO7/iOn/VO7/ROnw1w9uzZZ3zmZ37ma99333238nxcc801D37t137t93qnd3qnz+aZfuRHfuSzf/u3f/t77rvvvlt5gGuuuebB7/iO7/hZr/M6r/Pe9913362f9Vmf9Tr33XffrbwAH/7hH/5dr/M6r/PeAL/1W7/13V//9V//Plx11VVXXXXVVehBD3oQV1111VVXXfX/3Td90zc9/Zprrnnwh3zIhzzkvvvuuxXgmmuuefA3fdM3PZ1nuu+++279kA/5kIfwIvjcz/3c33qxF3ux177vvvtu/ZAP+ZCH8K90zTXXPPi1X/u13+ud3umdPhvgvvvuu/W3fuu3vvtHf/RHP+cd3/EdP+ud3umdPptn+pEf+ZHP/tEf/dHP4b/JNddc8+DXfu3Xfq93eqd3+mye6b777rv1t37rt777R3/0Rz+H/8OuueaaB/NMZ86cefA111zzYJ7pxV7sxV7rdV7ndd6b/0b33XffrWfPnr31vvvuu/W+++679R/+4R9+B+Ds2bO3njlz5sGAAV1zzTUPBjhz5syDeIBrrrnmwQDXXHPNg3mmM2fOPBjgmmuueTD/S9133323Apw9e/bWv//7v/9tgH/4h3/4HYB/+Id/+G3+l7jmmmse/Nqv/drv9Tqv8zrvfc011zyYZ7rvvvtu/a3f+q3v/tEf/dHP4b/QNddc8+DP+ZzP+a1rrrnmwffdd9+tv/Vbv/XdP/qjP/o5PNM111zz4Hd8x3f8rNd5ndd5b57pR37kRz77t3/7t7/nvvvuu5UX4MyZMw/6iI/4iO9+sRd7sde+7777bv2QD/mQh/AC/MRP/IR5pt/6rd/67q//+q9/H6666qqrrrrqKvSgBz2Iq6666qqrrvr/7pu+6Zuefs011zz4Qz7kQx5y33333Qrw4R/+4d/1Oq/zOu/9D//wD7995syZB19zzTUPvu+++279kA/5kIfwQrzYi73Ya3/u537ubwF85md+5uv8wz/8w2/zb3TNNdc8+B3f8R0/63Ve53Xem+fyD//wD7/99V//9e9z33333cp/g3d8x3f8rNd5ndd572uuuebBPNN9991364/+6I9+zm/91m99N/9PXHPNNQ9+sRd7sdc+c+bMg178xV/8tQFe7MVe7LX5V7rvvvtuBTh79uytAPfdd9+tANdcc82DAc6cOfNggGuuuebBXPUi+4d/+Iffvu+++279rd/6re8B/A//8A+/w/9BL/ZiL/Zar/M6r/Per/M6r/PePNPZs2ef8Zu/+Zvf9Q//8A+/8w//8A+/zX+Ba6655sGv/dqv/V7v9E7v9NkAP/IjP/LZv/3bv/097/iO7/jZr/M6r/NePNOP/MiPfPaP/uiPfg4vomuuuebBn/M5n/Nb11xzzYN/67d+67u//uu//n14Lh/+4R/+Xa/zOq/z3jzTb/3Wb33313/9178PV1111VVXXXUVetCDHsRVV1111VVX/X/3Td/0TU+/5pprHvwhH/IhD7nvvvtuBfiJn/gJA3zmZ37m65w9e/bWz/mcz/mta6655sH33XffrR/yIR/yEJ6PF3uxF3vtz/3cz/0tgM/8zM98nX/4h3/4bf4DvM7rvM57f/iHf/h38Uz33XffrT/6oz/6Ob/1W7/13fwXuuaaax782q/92u/1Tu/0Tp/NM9133323/tZv/dZ3//Zv//b33Hfffbfyf9Q111zz4Bd7sRd77TNnzjzoxV/8xV/7zJkzD77mmmsezAtw33333Xr27Nlb//7v//63eaazZ88+47777rsV4OzZs7cC3Hfffbfyb3DNNdc8GODMmTMPAnTNNdc8GODMmTMPuuaaax7MM11zzTUPBjhz5syDr7nmmgfzfNx333238nycPXv2Vp7LfffddyvPx3333Xcrz8fZs2dvBcQD3HfffU8HxAPcd999T5ckHuC+++67lWe65pprHgxw5syZB11zzTUPebEXe7HXArjmmmsefObMmQdfc801D+ZfcPbs2Wfcd999T7/vvvtuBfiHf/iH37nvvvtuBfiHf/iH3+b/gGuuuebBL/ZiL/baL/ZiL/Zar/M6r/PePNNv/dZvffeP/uiPfs599913K/8F3vEd3/Gz3umd3umzeS4/8iM/8tk/+qM/+jn8G1xzzTUP/pzP+Zzfuuaaax78W7/1W9/99V//9e/DA/zET/yEAX7kR37ks9/pnd7ps//hH/7htz/zMz/zdbjqqquuuuqqq9CDHvQgrrrqqquuuur/u5/4iZ8wwNu93dsJ4HVe53Xe+8M//MO/6x/+4R9++zM/8zNfB+Caa6558Od8zuf81jXXXPPg++6779YP+ZAPeQgPcM011zz4cz7nc37rmmuuefCP/MiPfPaP/uiPfg7/Ad7xHd/xs97pnd7pswF+67d+67tf7MVe7LWvueaaBwPcd999t/7Wb/3Wd//DP/zD7/zDP/zDb/Of5HVe53Xe+8Ve7MVe63Ve53Xem2e67777bv2t3/qt7/7RH/3Rz+H/iGuuuebBAC/2Yi/22mfOnHnQi7/4i7/2mTNnHnzNNdc8mBfgvvvuu/Xs2bO3/v3f//1vnz179hn33Xffrf/wD//w21z1X+qaa655MMCZM2cefM011zz4zJkzD7rmmmsefM011zz4zJkzD77mmmsezL/gvvvuu/Uf/uEffvsf/uEffue3fuu3vpv/5c6cOfOg13md13nvd3qnd/psgPvuu+/W3/7t3/6e3/qt3/ru++6771b+k1xzzTUP/vAP//DverEXe7HX5gF+5Ed+5LN/9Ed/9HP4d3ixF3ux1/7cz/3c3zp79uwzPviDP/jBPNPrvM7rvPeHf/iHf9dv/dZvffdv/dZvfc/nfu7n/tY//MM//PZnfuZnvg5XXXXVVVdddRV60IMexFVXXXXVVVf9f/fhH/7h3/U6r/M67/2Zn/mZr/MP//APv/1N3/RNT7/mmmse/PVf//Xv81u/9VvfzTNdc801D/6cz/mc37rmmmsefN999936IR/yIQ/hmT73cz/3t17sxV7stf/hH/7htz/zMz/zdfgP8OEf/uHf9Tqv8zrvDfAjP/Ijn/2jP/qjn3PNNdc8+LVf+7Xf63Ve53Xe+5prrnkwz3Tffffd+g//8A+//Vu/9Vvf8w//8A+/zb/TNddc8+DXfu3Xfq93eqd3+mye6b777rv1t37rt777t3/7t7/nvvvuu5X/pa655poHA7zYi73Ya585c+ZBL/7iL/7aL/ZiL/bavBD33Xffrf/wD//w2/fdd9+tZ8+efcZ999136z/8wz/8Nlf9r3HmzJkHXXPNNQ+55pprHgzwYi/2Yq91zTXXPBjgxV7sxV6b53Lffffd+g//8A+//Q//8A+/c9999936D//wD7/N/0LXXHPNg1/7tV/7vd7pnd7pswHuu+++W3/rt37ru3/0R3/0c/gPdM011zz4wz/8w7/rxV7sxV4b4L777rv1t37rt74b4J3e6Z0+G+BHfuRHPvtHf/RHP4d/h8/93M/9rRd7sRd77a//+q9/n9/6rd/6boBv+qZvevo111zz4M/8zM98HYDP/dzP/a1/+Id/+O3P/MzPfB2uuuqqq6666ir0oAc9iKuuuuqqq676/+51Xud13vvDP/zDv+sf/uEffvtHfuRHPudzP/dzfwvg7d7u7cRzueaaax78OZ/zOb91zTXXPPi+++679UM+5EMe8o7v+I6f9U7v9E6ffd999936IR/yIQ/h3+maa6558Id/+Id/14u92Iu9NsBnfuZnvs4//MM//DYPcM011zz4zJkzD36d13md93qd13md9+YB7rvvvlv/4R/+4bd/67d+63v+4R/+4bf5V7jmmmse/I7v+I6f9Tqv8zrvzTPdd999t/7Wb/3Wd//oj/7o5/C/yDXXXPNggNd+7dd+L4AXf/EXf+0Xe7EXe21eiPvuu+/Wf/iHf/jt++6779azZ88+47777rv1H/7hH36bq/5Pu+aaax585syZB19zzTUPfp3XeZ33erEXe7HX5rncd999t/7DP/zDb//DP/zD79x33323/sM//MNv87/INddc8+DXfu3Xfq93eqd3+myA++6779bf+q3f+u4f/dEf/Rz+Ha655poHf/iHf/h3vdiLvdhrA9x33323/tZv/dZ3/+iP/ujn8Ezv+I7v+Fnv9E7v9NkA9913362f9Vmf9Tr33XffrfwbvNiLvdhrf+7nfu5v3Xfffbd+yId8yENe53Ve570//MM//Lv+4R/+4bc/8zM/83Ve7MVe7LU/93M/97f+4R/+4bc/8zM/83W46qqrrrrqqqvQgx70IK666qqrrrrq/7trrrnmwd/0Td/0dID77rvv1muuuebBP/IjP/LZP/qjP/o5PB/XXHPNgz/ncz7nt6655poH33fffbdec801Dwb4zM/8zNf5h3/4h9/m3+Gaa6558Od8zuf81jXXXPPg++6779av//qvf59/+Id/+G3+Bddcc82DX/u1X/u9Xud1Xue9r7nmmgfzTPfdd9+t//AP//Dbv/Vbv/U9//AP//DbPB/XXHPNg1/7tV/7vV7ndV7nva+55poH80y/9Vu/9d2/9Vu/9T3/8A//8Nv8L3HNNdc8+LVf+7Xf68Vf/MVf+8Ve7MVemxfgvvvuu/Uf/uEffvu+++679R/+4R9+5+zZs7fed999t3LVVc90zTXXPPjFXuzFXvvFXuzFXut1Xud13pvncvbs2Wfcd999T//7v//73/6Hf/iH3/mHf/iH3+Z/gWuuuebBH/7hH/5dL/ZiL/baAGfPnn3Gb/7mb37Xj/7oj34O/wov9mIv9trv9E7v9Fkv9mIv9toA9913362/9Vu/9d0/+qM/+jk8H9dcc82DP+dzPue3rrnmmgffd999t/7oj/7o5/zWb/3Wd/OvdM011zz4wz7sw77rxV/8xV/7R37kRz77nd7pnT77H/7hH377t37rt77nt37rt777mmuuefA3fdM3Pf2+++679UM+5EMewlVXXXXVVVddhR70oAdx1VVXXXXVVVfBh3/4h3/X67zO67w3z/QhH/IhD7nvvvtu5QW45pprHvw5n/M5v3XNNdc8GOAzP/MzX+cf/uEffpt/hxd7sRd77c/93M/9LYD77rvv1g/5kA95CP8G11xzzYNf+7Vf+71e/MVf/LVf7MVe7LV5pvvuu+/Wf/iHf/jtf/iHf/id3/qt3/pugHd8x3f8rHd6p3f6bJ7pvvvuu/W3fuu3vvtHf/RHP4f/Ba655poHv/Zrv/Z7AbzTO73TZ/Nc7rvvvlv/4R/+4bfvu+++W//hH/7hd86ePXvrfffddytXXfWvdM011zz4xV7sxV77xV7sxV7rmmuuefCLvdiLvTYPcN99990qSX//93//W//wD//wO7/1W7/13fwP9mIv9mKv/U7v9E6f9WIv9mKvDXDffffd+qM/+qOf81u/9VvfzQvxYi/2Yq/94R/+4d91zTXXPBjgvvvuu/W3fuu3vvtHf/RHP4d/wTXXXPPg137t136vd3qnd/rss2fPPuM3f/M3v+tHf/RHP4d/pdd5ndd57w//8A//Lp7pt37rt77767/+698H4JprrnnwN33TNz39vvvuu/VDPuRDHsJVV1111VVXXYUe9KAHcdVVV1111VVXwTXXXPPgb/qmb3o6wG/91m9999d//de/D/+Cz/3cz/2tF3uxF3ttgPvuu+/WD/mQD3kI/0av8zqv894f/uEf/l0A//AP//Dbn/mZn/k6/Ae45pprHvzar/3a7/XiL/7ir/1iL/Zir80z3XfffbcCXHPNNQ8GuO+++2790R/90c/5rd/6re/mf7hrrrnmwa/92q/9Xi/+4i/+2i/2Yi/22jzAfffdd+tv/dZvffc//MM//M4//MM//DZXXfWf5MyZMw968Rd/8dd5sRd7sde65pprHvxiL/Zir81zue+++279h3/4h9/5h3/4h9++7777bv2Hf/iH3+Z/mNd5ndd5r3d8x3f87GuuuebBAPfdd9+tX//1X/8+//AP//DbPMCLvdiLvfaHf/iHf9c111zzYID77rvv1t/6rd/67h/90R/9HP6V3vEd3/Gz3umd3umz77vvvlu//uu//n3+4R/+4bf5V3id13md9/rwD//w7wb4rd/6re/++q//+vfhma655poHf9M3fdPT77vvvls/5EM+5CFcddVVV1111VXoQQ96EFddddVVV1111RWf+7mf+1sv9mIv9to/8iM/8tk/+qM/+jm8EJ/7uZ/7Wy/2Yi/22v/wD//w22fOnHnwNddc8+D77rvv1g/5kA95CP9KH/7hH/5dr/M6r/PeAD/yIz/y2T/6oz/6OfwnuOaaax78ju/4jp/1Oq/zOu/NA9x33323/sM//MNv/8M//MPv/NZv/dZ38z/MNddc8+DXfu3Xfi+Ad3qnd/psnss//MM//Pbf//3f//Zv//Zvf8999913K1dd9d/gmmuuefCZM2ce9GIv9mKv/eIv/uKv/WIv9mKvzXO57777bv2Hf/iH3/6Hf/iH3/mHf/iH377vvvtu5X+Aa6655sGv/dqv/V7v9E7v9Nk802/91m9992/91m99z4u92Iu91uu8zuu89zXXXPNggPvuu+/W3/qt3/ruH/3RH/0c/h3e8R3f8bPe6Z3e6bPvu+++Wz/rsz7rde67775beRG8zuu8znt/+Id/+HfxTL/1W7/13V//9V//PjzTNddc8+Bv+qZvevp9991364d8yIc8hKuuuuqqq666Cj3oQQ/iqquuuuqqq6664h3f8R0/653e6Z0++7777rv1Qz7kQx7CC/CO7/iOn/VO7/ROn33ffffd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/dzfuu+++279kA/5kIdw1VVXXXXVVVehBz3oQVx11VVXXXXVVVe84zu+42e90zu902fzTL/1W7/13V//9V//PjzTh3/4h3/X67zO67z3j/zIj3z2j/7oj34OL8A111zz4Hd8x3f8rNd5ndd5b4Df+q3f+u4f/dEf/ZzXfu3Xfq93eqd3+myA3/qt3/rur//6r38f/oNdc801D/6cz/mc37rmmmseDPAP//APv/31X//173Pffffdyr/DNddc8+AXe7EXe+0Xe7EXe63XeZ3XeW8e4L777rv1t37rt777H/7hH37nH/7hH36b5/I6r/M67/2O7/iOn3XNNdc8mAe47777bv2t3/qt7/6Hf/iH3/mHf/iH3+aq/xTXXHPNgwHOnDnzYF6As2fP3spzue+++27lqv9S11xzzYNf7MVe7LVf7MVe7LVe53Ve5715pvvuu+/Wf/iHf/jt3/qt3/qef/iHf/ht/gXXXHPNg1/7tV/7vV78xV/8tV/sxV7stXmA++6779bf+q3f+m6AH/3RH/0c/hVe53Ve573f8R3f8bOuueaaB9933323ftZnfdbr3HfffbfyH+B1Xud13vvDP/zDv+u+++679eu//uvf5x/+4R9++3M/93N/68Ve7MVeG+AzP/MzX+cf/uEffpvn8mIv9mKv/bmf+7m/dfbs2Wd88Ad/8IM//MM//Lte53Ve571/67d+67u//uu//n246qqrrrrqqqvQgx70IK666qqrrrrqqis+/MM//Lte53Ve571/5Ed+5LPf6Z3e6bPvu+++Wz/kQz7kITzTT/zETxjgQz7kQx5y33333coLcc011zz4tV/7td/rnd7pnT6b5/L1X//17/Nbv/Vb381/oGuuuebBr/3ar/1e7/RO7/TZAPfdd9+tX//1X/8+//AP//Db/Ae75pprHnzmzJkHv87rvM57vc7rvM578wD33XffrQD/8A//8Nv33Xffre/0Tu/02TzTfffdd+s//MM//PZ9991364/+6I9+Dle9yK655poHA5w5c+bBANdcc82DAc6cOfMggGuuuebBANdcc82DAZ05c+ZB11xzzYP5D3bffffdCiBJtg1w9uzZW7lCgAHuu+++W7lCgHmm++6771Ye4OzZs88AuO+++24F+Id/+Iff5qrLrrnmmge/2Iu92Gu9zuu8znu/2Iu92GvzTGfPnn3Gb/7mb37Xj/7oj34Oz3TNNdc8+LVf+7Xf65prrnnw67zO67w3z+W+++679bd+67e++7d+67e+++zZs8/g3+Gaa6558Od8zuf81jXXXPPgs2fPPuM3f/M3v+tHf/RHP4f/AO/4ju/4We/0Tu/02ffdd9+tZ8+evfXFXuzFXhvgMz/zM1/nH/7hH36b5+Oaa6558Id/+Id/14u92Iu99md+5me+zud+7uf+FsCHfMiHPOS+++67lauuuuqqq666Cj3oQQ/iqquuuuqqq6664sM//MO/63Ve53Xe++u//uvf53Ve53Xe68Ve7MVe++u//uvf57d+67e++3Ve53Xe+8M//MO/67d+67e+++u//uvfhxfRNddc8+AP//AP/64Xe7EXe22A++6779bf+q3f+u4f/dEf/Rz+g7zjO77jZ73TO73TZ/NMP/IjP/LZP/qjP/o5/Be45pprHnzmzJkHv9iLvdhrAbzTO73TZ/MC/MM//MNv33fffbf+wz/8w+/cd999t/7DP/zDb/P/yDXXXPNgnunMmTMPvuaaax4McObMmQcBXHPNNQ8GuOaaax4M6MyZMw+65pprHsy/03333Xcrz3T27NlbeT7OnDnzYJ7LNddc82D+G9x33323nj179tb77rvvGYD/4R/+4Xfuu+++WwH+4R/+4bf5f+iaa6558Gu/9mu/1zu90zt9Ns9033333foP//APv/1iL/Zir33NNdc8mAe47777bv2t3/qt7/6Hf/iH3/mHf/iH3+Y/2DXXXPPg137t136vd3qnd/psgB/5kR/57B/90R/9HP4DfPiHf/h3vc7rvM57A9x33323fv3Xf/37/MM//MNv80K8zuu8znt/+Id/+HfxTL/1W7/13V//9V//Plx11VVXXXXVVQBUrrrqqquuuuqq5+tHfuRHPudzP/dzX/sd3/EdP+u3fuu3vvsd3/EdPwvgt37rt76Hf4UzZ848+MVe7MVeG+Af/uEffvvFXuzFXvud3umdPvt1Xud13vvrv/7r3+cf/uEffpt/o2uuuebBn/M5n/Nb11xzzYMB/uEf/uG3v/7rv/597rvvvlv5L3Lffffdet99990K8Dqv8zrvxQPcd999t549e/bWF3uxF3ttgBd7sRd77Rd7sRfjdV7ndd4b4L777rsV4B/+4R9++x/+4R9+57777rv17Nmzt95333238r/QNddc82CAF3uxF3vtM2fOPOjFX/zFXwfwi73Yi702/0733XffrTzT2bNnb73vvvtuBbjvvvtuBTh79uwzAO67775bAZ89e/YZ99133638B7vmmmseDGDbkgRw5syZB3OFAQFcc801D+YKA+KZzpw58yAe4JprrnkwwDXXXPNggBd7sRd77WuuuebB11xzzYNf7MVeDIDXeZ3XeW8e4L777rv17Nmzt9533323AvzDP/zD79x33323nj179tb77rvvVv4Puu+++2797d/+7e+55pprHvw6r/M67w1wzTXXPPiaa655bx7gH/7hH377Mz/zM1+H/2T33XffrT/6oz/6OQDv9E7v9Nnv9E7v9Nkv/uIv/tqf+Zmf+Tr8O1xzzTUPvuaaax7MM509e/bWf/iHf/ht/gX/8A//8Ns8wG/91m99D1ddddVVV1111f3Qgx70IK666qqrrrrqqis+/MM//Lte53Ve572//uu//n3+4R/+4bc/53M+57euueaaB//Wb/3Wd7/O67zOewO83du9nfhX+KZv+qanX3PNNQ/+kR/5kc/+0R/90c95ndd5nfd+x3d8x8+65pprHgzwW7/1W9/9oz/6o59z33333cqL6Jprrnnwa7/2a7/XO73TO302wH333Xfr13/917/PP/zDP/w2/4WuueaaB7/2a7/2e73O67zOe19zzTUPBrjvvvtu/a3f+q3v/u3f/u3vue+++27lma655poHv9iLvdhrA7zYi73Ya11zzTUPfrEXe7HX5vm47777bj179uyt9913363/8A//8Dv33Xffrf/wD//w2/wPcs011zz4xV7sxV77zJkzD3rxF3/x136xF3ux1+ZfcN99993KM509e/bW++6771aA++6771aAs2fPPgPgvvvuuxXw2bNnn3Hffffdyv8z11xzzYPPnDnz4GuuueZBgF7sxV7sta655poHnzlz5sHXXHPNg/kX3HfffbeePXv2Gffdd9/T77vvvlvPnj37jPvuu+/Ws2fP3nrffffdyv8S11xzzYNf7MVe7LXPnDnzoHd6p3f6bJ7Lfffdd+s//MM//PY111zz4Bd7sRd7bZ7pvvvuu/W3fuu3vvtHf/RHP4f/Atdcc82DP+dzPue3rrnmmgffd999t37WZ33W69x333238q90zTXXPPjDP/zDv+vFXuzFXvu+++67FeCaa6558I/+6I9+zo/8yI98Nv+CD//wD/+u13md13nvf/iHf/jtz/zMz3wdrrrqqquuuuqq+6EHPehBXHXVVVddddVVV3z4h3/4d73O67zOe3/913/9+/zWb/3Wd7/jO77jZ73TO73TZ/NMv/Vbv/XdX//1X/8+vIg+93M/97de7MVe7LX/4R/+4bc/8zM/83V4pmuuuebBr/3ar/1e7/RO7/TZAPfdd9+tv/Vbv/XdP/qjP/o5/Ate53Ve570//MM//Lt4ph/5kR/57B/90R/9HP4LXXPNNQ9+7dd+7fd6p3d6p8/mme67775bf+u3fuu7f/RHf/RzeBFdc801DwZ4sRd7sdd+sRd7sde65pprHvxiL/Zir80LcN999936D//wD78N8A//8A+/c9999936D//wD7/Nf6JrrrnmwS/2Yi/22mfOnHnQNddc8+AXe7EXe+1rrrnmwbwA9913363/8A//8Nv33Xffrf/wD//w22fPnn3GfffddytX/Ye55pprHnzmzJkHX3PNNQ8+c+bMg6655poHX3PNNQ8+c+bMg6+55poH80Lcd999twKcPXv21vvuu+/W++6779azZ88+47777rv1H/7hH36b/ybXXHPNg8+cOfPgF3uxF3stgBd/8Rd/7Rd7sRd7bR7gvvvuu/W3fuu3vhvgR3/0Rz+HBzhz5syDXud1Xue93+md3umzeabf+q3f+u777rvv1h/90R/9HP6TXXPNNQ/+nM/5nN+65pprHnz27Nln/OZv/uZ3/eiP/ujn8CK65pprHvw5n/M5v3XNNdc8+L777rv1Qz7kQx5yzTXXPPibvumbng7wIz/yI5/9oz/6o5/DC/G5n/u5v/ViL/Zir/0jP/Ijn/2jP/qjn8NVV1111VVXXXU/9KAHPYirrrrqqquuuuqKD//wD/+u13md13nvr//6r3+f3/qt3/rua6655sHf9E3f9HSe6UM+5EMect99993Ki+Ad3/EdP+ud3umdPhvgQz7kQx5y33333cpzueaaax782q/92u/1Tu/0Tp8NcN999936W7/1W9/9oz/6o5/D8/GO7/iOn/VO7/ROnw3wD//wD7/99V//9e9z33333cp/kRd7sRd77dd5ndd5r9d5ndd5b57pvvvuu/VHf/RHP+e3fuu3vpv/INdcc82Dz5w58+BrrrnmwS/2Yi/2Wtdcc82DX+zFXuy1eT7uu+++WwH+4R/+4bf/4R/+4Xfuu+++W//hH/7ht/lXuuaaax585syZB7/Yi73Ya11zzTUPvuaaax78Yi/2Yq/NC3Dffffd+g//8A+/fd9999169uzZZ9x3331P/4d/+Iff4ar/Vtdcc82DAc6cOfOga6655iFnzpx50DXXXPPga6655sFnzpx58DXXXPNgXoD77rvv1n/4h3/47X/4h3/4nfvuu+/Wf/iHf/ht/oNcc801DwZ4sRd7sdc+c+bMgwBe/MVf/LVf7MVe7LV5Pu67775br7nmmgffd999t/7Wb/3Wd//2b//299x333238i+45pprHvxiL/Zir/06r/M67/ViL/Zirw1w33333fpbv/Vb3/2jP/qjn8N/omuuuebBr/3ar/1e7/RO7/TZAD/yIz/y2T/6oz/6OfwLrrnmmgd/0zd909MB/uEf/uG3P/MzP/N1eKbXeZ3Xee8P//AP/6777rvv1q//+q9/n3/4h3/4bZ6PF3uxF3vtz/3cz/0tgB/5kR/57B/90R/9HK666qqrrrrqqvuhBz3oQVx11VVXXXXVVVd87ud+7m+92Iu92Gt/5md+5uv8wz/8w28DvOM7vuNnvdM7vdNn33fffbd+/dd//fv8wz/8w2/zL3ixF3ux1/7cz/3c3wL4zM/8zNf5h3/4h9/mhbjmmmse/OEf/uHf9WIv9mKvDXDffffd+qM/+qOf81u/9VvfzTN97ud+7m+92Iu92GsDfP3Xf/37/NZv/dZ381/gmmuuefBrv/Zrv9frvM7rvPc111zzYID77rvv1t/6rd/67t/+7d/+nvvuu+9W/otcc801D36xF3ux136xF3ux1wJ4sRd7sde+5pprHszzcd9999169uzZW++7775b/+Ef/uF37rvvvlv/4R/+4bevueaaB585c+bBL/ZiL/ZaAC/+4i/+2i/2Yi/22rwA9913361nz5699e///u9/++zZs8+47777bv2Hf/iH3+aq/5WuueaaBwOcOXPmwddcc82DX+zFXuy1AF7ndV7nvXku9913363/8A//8Nv/8A//8Dv33Xffrf/wD//w27wQ11xzzYPPnDnz4GuuuebBZ86cedA111zz4GuuuebBL/ZiL/ba/Avuu+++W8+ePXvr3//93/82wG//9m9/z3333Xcr/w5nzpx50Ed8xEd894u92Iu9NsB99913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8A//8Nv8G73Yi73Ya3/u537ubwH8wz/8w28DvNiLvdhrA9x33323/uiP/ujn/NZv/dZ38x/gmmuuefCHf/iHf9eLvdiLvTbAfffdd+tv/dZvffeP/uiPfg7/Q11zzTUPfu3Xfu33ep3XeZ33vuaaax7MA9x33323/tZv/dZ3//Zv//b33HfffbfyIrjmmmsefObMmQdfc801Dzpz5syDAa655poHA1xzzTUPBjhz5syDr7nmmgfz73T27Nln2PbZs2dvBbjvvvtuBXTfffc9/ezZs88AuO+++24FOHv27K0A9913361c9QJdc801D+a5nDlz5sHXXHPNg8+cOfMggBd/8Rd/7WuuueYhZ86ceRAvxH333XcrwD/8wz/89n333XcrwD/8wz/8zj/8wz/8Ns/lzJkzD3rxF3/x13mxF3ux17rmmmse/GIv9mKvzQPcd999t/7DP/zDb589e/YZf//3f//b//AP//Db/A9xzTXXPPjDP/zDv+vFXuzFXhvgvvvuu/VHf/RHP+e3fuu3vpv/INdcc82DX/u1X/u93umd3umzeYB/+Id/+O3P/MzPfB3+la655poHf9M3fdPT77vvvls/5EM+5CEAr/M6r/PeH/7hH/5dv/Vbv/Xd//AP//DbH/7hH/7dv/Vbv/XdX//1X/8+XHXVVVddddVV90MPetCDuOqqq6666qqrrnjHd3zHz3qnd3qnz/6Hf/iH3/6t3/qt7/nwD//w7/qt3/qt7/76r//69+GZrrnmmgd/+Id/+He92Iu92Gvfd999t37WZ33W6wB80zd909MBfuRHfuSzf/RHf/Rz+Dd6ndd5nff+8A//8O8C+Id/+Iff/szP/MzXAXid13md937Hd3zHz7rmmmseDHDffffd+lmf9Vmvc999993Kv9E7vuM7ftY7vdM7fTbAfffdd+uP/uiPfs5v/dZvfTf/w1xzzTUPfu3Xfu33Anind3qnz+YB7rvvvlv/4R/+4bfvu+++W3/0R3/0c/gvcObMmQdJ0pkzZx4McM011zwY8JkzZx58zTXXPBjgmmuueTDPdObMmQdfc801D+bf4b777rtVkmz77Nmzt9533323coXuu+++p589e/YZAPfdd9+tAGfPnr31vvvuu5X/QNdcc82DeS5nzpx5MM/lmmuueTAPcObMmQfxfFxzzTUP5tl0zTXXPIjnpDNnzjyIB7jmmmsezL/Tfffdd+vZs2dv/fu///vfBjh79uwz7rvvvlv/4R/+4bf5d7jmmmse/GIv9mKv9WIv9mKvfc011zz4xV7sxV6bB7jvvvtuPXv27K1///d//9v/8A//8Dv/8A//8Nv8N3ud13md937Hd3zHz7rmmmseDHDffffd+lmf9Vmvc999993Kv9E111zz4Nd+7dd+r3d6p3f6bJ7pR37kRz77H/7hH37nwz/8w7/rmmuuefA//MM//PZnfuZnvg7/Sp/7uZ/7Wy/2Yi/22l//9V//Pr/1W7/13d/0Td/09GuuuebBn/mZn/k611xzzYM+/MM//Lt/67d+67u//uu//n246qqrrrrqqqvuhx70oAdx1VVXXXXVVVddcc011zz4m77pm55+33333QpwzTXXPPjrv/7r3+e3fuu3vpsHuOaaax78OZ/zOb91zTXXPPi+++679ezZs7e+2Iu92Gv/wz/8w29/5md+5uvwb/SO7/iOn/VO7/ROnw3wIz/yI5/9oz/6o5/DA1xzzTUPfu3Xfu33eqd3eqfPBrjvvvtu/a3f+q3v/u3f/u3vue+++27lRfRiL/Zir/3hH/7h33XNNdc8GOBHfuRHPvtHf/RHP4f/Qa655poHv/Zrv/Z7vfiLv/hrv9iLvdhr8wD33Xffrb/1W7/13f/wD//wO//wD//w2/wvcc011zzYtiXpzJkzDwa45pprHgz4zJkzD77mmmseDHDNNdc8GODMmTMPBrjmmmsezL/Dfffdd6sk3XfffU/nOQkwwJkzZx4MIEm2fc011zyY/yXuu+++W3kuZ8+evRXg7//+738b4B/+4R9+57777nv62bNnn8F/kWuuuebBL/ZiL/baL/ZiL/Za11xzzYNf7MVe7LV5gPvuu+/WH/3RH/2c3/qt3/pu/hudOXPmQa/zOq/z3u/0Tu/02QD33Xffrb/927/9Pb/1W7/13ffdd9+tvIiuueaaB7/2a7/2e73TO73TZ/NM//AP//DbX//1X/8+9913360A11xzzYM/53M+57euueaaB//Wb/3Wd3/913/9+/Cv8GIv9mKv/bmf+7m/dfbs2Wf8yI/8yGd/+Id/+Hfdd999t37Ih3zIQ17sxV7stT73cz/3t//hH/7htz/zMz/zdbjqqquuuuqqq+6HHvSgB3HVVVddddVVVz3b537u5/7Wi73Yi702z/R2b/d24vm45pprHvw5n/M5v3XNNdc8GOC+++679UM+5EMewr/Rh3/4h3/X67zO67w3wNd//de/z2/91m99Ny/ANddc8+DXfu3Xfq93eqd3+mye6b777rv1t37rt777t3/7t7/nvvvuu5Xn45prrnnwh3/4h3/Xi73Yi702wH333Xfr13/917/PP/zDP/w2/82uueaaB585c+bBL/ZiL/Za7/RO7/TZPJd/+Id/+O2///u//+0f/dEf/Rz+H7rmmmsebNuSdObMmQdfc801D+YKnzlz5sHXXHPNgwGuueaaBwOcOXPmwddcc82D+Q9033333cpzOXv27K08l/vuu+9WHuC+++67lefj7Nmzz+DZfN999z2D5+SzZ88+gwe47777buV/qWuuuebBL/ZiL/baL/ZiL/Zar/M6r/PePNN999136z/8wz/89m/91m99zz/8wz/8Nv9Nrrnmmge/9mu/9nu90zu902cD3Hfffbf+1m/91nf/6I/+6OfwL3jHd3zHz3qnd3qnz+aZ/uEf/uG3v/7rv/597rvvvlt5Ltdcc82Dv+mbvunpAD/yIz/y2T/6oz/6ObyIrrnmmgd/zud8zm9dc801D77vvvtuveaaax789V//9e/zW7/1W9/9Yi/2Yq/1uZ/7ub/9D//wD7/9mZ/5ma/DVVddddVVV111P/SgBz2Iq6666qqrrrrq2V7sxV7stT/3cz/3twB+67d+67u//uu//n14AV7ndV7nvT/8wz/8uwDuu+++Wz/kQz7kIfwbfO7nfu5vvdiLvdhrA3zmZ37m6/zDP/zDb/MiuOaaax78ju/4jp/1Oq/zOu/NM9133323nj179tbf+q3f+p7f+q3f+m6e6R3f8R0/653e6Z0+m2f6kR/5kc/+0R/90c/hv9E111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bR7gvvvuu/W3fuu3vvsf/uEffucf/uEffpur/s2uueaaB9v2Nddc8xCekwEBnD179lYA25ak++6771au+k9z5syZB734i7/467zO67zOe73Yi73Ya/NM9913362/9Vu/9d0/+qM/+jn8N7nmmmse/I7v+I6f9Tqv8zrvDXDffffd+lu/9Vvf/aM/+qOfw3N5x3d8x896p3d6p8/mme67775bv/7rv/59/uEf/uG3eSFe7MVe7LU/93M/97fuu+++W7/+67/+ff7hH/7ht3kRveM7vuNnvdM7vdNnA9x33323fsiHfMhDAF7sxV7stT73cz/3t//hH/7htz/zMz/zdbjqqquuuuqqq+6HHvSgB3HVVVddddVVVz3bNddc8+AP//AP/64Xe7EXe+3f+q3f+u6v//qvfx+ej2uuuebB3/RN3/R0HuC3fuu3vvvrv/7r34cX0TXXXPPgD//wD/+uF3uxF3vt++6779av//qvf59/+Id/+G3+la655poHv9iLvdhrv9iLvdhrvc7rvM5780z33XffrWfPnr0V4MVe7MVeG+Af/uEffvszP/MzX4f/Jtdcc82DX/u1X/u9Xud1Xue9r7nmmgfzAPfdd9+tv/Vbv/Xdv/3bv/099913361cddX/A9dcc82DX/u1X/u93umd3umzeab77rvv1n/4h3/47d/6rd/6nn/4h3/4bf4bXHPNNQ/+8A//8O96sRd7sdcGOHv27DM+8zM/87Xvu+++W9/xHd/xs17ndV7nva+55poHA9x33323fv3Xf/37/MM//MNv8yJ6x3d8x896p3d6p8++7777bv2sz/qs17nvvvtu5UXwuZ/7ub/1Yi/2Yq8N8PVf//Xv81u/9VvfDfBiL/Zir/W5n/u5v/0P//APv/2Zn/mZr8NVV1111VVXXXU/KlddddVVV1111XO47777bv37v//7336xF3ux177mmmsezAvw4R/+4d8F8A//8A+//fVf//Xv8zmf8zm/9Tqv8zrvDfD1X//178O/4Jprrnnw53zO5/zWNddc8+D77rvv1s/6rM96nfvuu+9W/g3uu+++W++7777v/q3f+q3v/tEf/dHPebEXe7HXfrEXe7HXep3XeZ33vuaaax7MM/3DP/zDb//Wb/3W9/Bf7Jprrnnwa7/2a7/X67zO67z3Nddc82Ce6b777rv1t37rt74b4Ed/9Ec/h6teZNdcc82DAc6cOfNggGuuuebBZ86ceRDPdM011zz4mmuueTDAmTNnHixJZ86ceRAvwH333XcrgCTZNsDZs2dv5QoBvu+++27l2QQY4L777ruVBzh79uwzeC733XffrTyXs2fP3gpw33333cr/Y/fdd9+tP/qjP/o5v/Vbv/XdL/7iL/46r/M6r/NeL/ZiL/ba11xzzXu/zuu8znvfd999t/7Wb/3Wd//oj/7o5/Bf6L777rv167/+69/ntV/7td/rdV7ndd77mmuuefDnfM7n/BbANddc82CA++6779Yf/dEf/Zzf+q3f+m7+lX70R3/0c6655poHv87rvM57f87nfM5vfciHfMhD+Bd87ud+7m+92Iu92GvzTGfOnHkQV1111VVXXXXVvwQ96EEP4qqrrrrqqquuek6v8zqv894f/uEf/l333XffrZ/1WZ/1Ovfdd9+tPJef+ImfMMDbvd3bCeCaa6558Dd90zc9HeC3fuu3vvvrv/7r34cX4MVe7MVe+3M/93N/C+Af/uEffvszP/MzX4f/QC/2Yi/22h/+4R/+Xddcc82DAf7hH/7ht1/sxV7stXmm++6779Z/+Id/+O1/+Id/+J3f+q3f+m7+k1xzzTUPfu3Xfu33eqd3eqfP5pnuu+++W3/rt37ru//hH/7hd/7hH/7ht/l/7Jprrnkwz3TmzJkHX3PNNQ8GOHPmzIMArrnmmgcDXHPNNQ8GuOaaax5y5syZB/F/zH333XerJNn2P/zDP/w2wD/8wz/8zn333XcrwD/8wz/8Nv/PXHPNNQ9+7dd+7fd6p3d6p8/mme67775b/+Ef/uG3f+u3fut7/uEf/uG3+S/0Oq/zOu/94R/+4d/FA/zIj/zIZ//oj/7o5/DvcM011zz4cz7nc37rmmuuefBv/dZvfffXf/3Xvw8vwOd+7uf+1ou92Iu99n333Xfrb/3Wb333O73TO332fffdd+uHfMiHPATgzJkzD/rmb/7mW++7775bP+RDPuQhXHXVVVddddVV96Ny1VVXXXXVVVc9jzNnzjwI4Jprrnnwa7/2a7/Xj/7oj34OD/DhH/7h3wXwW7/1W9/NM9133323fsiHfMhDvumbvunpr/M6r/Pe9913360/+qM/+jk8lxd7sRd77c/93M/9LYB/+Id/+O3P/MzPfB3+g1xzzTUP/vAP//DverEXe7HXBrjvvvtu/fqv//r3+Yd/+Iffvuaaax78Yi/2Yq/9Oq/zOu/1Yi/2Yq99zTXXvPfrvM7rvPc7vuM7ftY//MM//PY//MM//M5v/dZvfTf/Aa655poHv+M7vuNnvc7rvM5780z33XffrT/6oz/6Ob/1W7/13fwfd8011zwY4LVf+7XfC+Caa6558DXXXPNggGuuueYhZ86ceRD/Tvfdd9+tAGfPnr0V4L777rv1vvvuu5VnOnv27DPuu+++WwHOnj17q22fPXv2GbwA11xzzYMBbFuSAM6cOfNgrjCga6655sE8mwEBnDlz5kE8wDXXXPNgnss111zzYJ7LmTNnHgxwzTXXPJhnuuaaa94b4HVe53Xemwe47777bj179uyt99133zPuu+++p589e/YZ9913361nz5699b777ruV/2Puu+++W3/0R3/0c37rt37ru1/8xV/8dV7ndV7nvV7sxV7sta+55pr3fp3XeZ33vu+++279rd/6re/+0R/90c/hP9E111zz4A//8A//rhd7sRd7bYD77rvv1muuuebBANdcc82D+Xe67777bv2sz/qs1/mmb/qmp7/O67zOe589e/YZP/IjP/LZPJfP/dzP/a0Xe7EXe+377rvv1q//+q9/n3/4h3/47Rd/8Rd/7Rd7sRd77Rd7sRd77X/4h3/4ba666qqrrrrqqhcEPehBD+Kqq6666qqrrnpO7/iO7/hZ7/RO7/TZAPfdd9+tH/IhH/IQHuCbvumbnn7NNdc8+DM/8zNf5x/+4R9+mwe45pprHvxN3/RNTwf4kR/5kc/+0R/90c/hmV7sxV7stT/3cz/3twB+67d+67u//uu//n34D/KO7/iOn/VO7/ROn80z/ciP/Mhn/+iP/ujn8Hxcc801D36xF3ux136d13md93qxF3ux1+aZ7rvvvlv/4R/+4bf/4R/+4Xd+67d+67v5V3qxF3ux1/7wD//w77rmmmsezDP9yI/8yGf/9m//9vfcd999t/J/0DXXXPPgF3uxF3vtM2fOPOjFX/zFX/vFXuzFXpsX0X333Xcrz3T27Nlb77vvvlsB7rvvvlsBzp49+wyA++6771aA++677+lnz559Bv8HnTlz5kGS9GIv9mKvDfBiL/Zir3XNNdc8+MyZMw++5pprHswLcfbs2WfY9j/8wz/8NsA//MM//M599913K8A//MM//Db/R1xzzTUPfu3Xfu33ep3XeZ33vuaaax4McN999936D//wD7/9W7/1W9/zD//wD7/Nv9M111zz4Nd+7dd+L4B3eqd3+mye6b777rv1t37rt777R3/0Rz/nmmuuefA3fdM3PR3g7Nmzz/jMz/zM177vvvtu5d/hdV7ndd77wz/8w7/r7Nmzz/i6r/u69/6Hf/iH3+aZPvdzP/e3XuzFXuy177vvvlu//uu//n3+4R/+4bcBXud1Xue9P/zDP/y7/uEf/uG3P/MzP/N1XuzFXuy1PvdzP/e3f+u3fuu7v/7rv/59uOqqq6666qqr7oce9KAHcdVVV1111VVXPad3fMd3/Kx3eqd3+mye6TM/8zNf5x/+4R9+G+B1Xud13vvDP/zDvwvg7d7u7cTz8WIv9mKv/bmf+7m/BfAjP/Ijn/2jP/qjn3PNNdc8+Ju+6ZueDvAjP/Ijn/2jP/qjn8N/gGuuuebBH/7hH/5dL/ZiL/baAP/wD//w25/5mZ/5OryIrrnmmge/2Iu92Gu/zuu8znu92Iu92GvzTPfdd9+t//AP//Dbv/Vbv/U9//AP//DbvADXXHPNg1/7tV/7vV7ndV7nva+55poHA9x33323/tZv/dZ3/+iP/ujn8H/ENddc8+AzZ848+MVe7MVeC+DFX/zFX/vFXuzFXpsX4L777rv1H/7hH377vvvuu/Xs2bPPuO+++24FuO+++55+9uzZZ3DVv8o111zz4DNnzjz4mmuuedCLvdiLvTbANddc8+AXe7EXe23+Bffdd9+tZ8+evfW+++57xn333ff0s2fPPuO+++679ezZs7fed999t/K/zJkzZx704i/+4q/zYi/2Yq/1Oq/zOu/NM9133323/tZv/dZ3//Zv//b33HfffbfyIrrmmmse/Nqv/drv9eIv/uKv/WIv9mKvzQPcd999t/7oj/7o5/zWb/3Wd/MA11xzzYM/53M+57euueaaB9933323ftZnfdbr3Hfffbfy7/CO7/iOn/VO7/ROn33ffffd+lmf9Vmvc9999936uZ/7ub/1Yi/2Yq9933333fr1X//17/MP//APv80zXXPNNQ/+pm/6pqcDfOZnfubrvM7rvM57vc7rvM57/9Zv/dZ3f/3Xf/37cNVVV1111VVX3Q896EEP4qqrrrrqqquuek7v+I7v+Fnv9E7v9Nn33Xffrddcc82D/+Ef/uG3P/MzP/N1AD78wz/8u17ndV7nvb/+67/+fX7rt37ru3kBXud1Xue9P/zDP/y7AH7kR37ks1/8xV/8tV/sxV7stf/hH/7htz/zMz/zdfgP8I7v+I6f9U7v9E6fDXDffffd+vVf//Xv8w//8A+/zb/RNddc8+DXfu3Xfq8Xf/EXf+0Xe7EXe22e6b777rv1H/7hH377t37rt77nH/7hH34b4Jprrnnwa7/2a7/XO73TO302z3Tffffd+lu/9Vvf/aM/+qOfw/9S11xzzYMBXvu1X/u9AF78xV/8dV7sxV7stXgB7rvvvlvPnj1769///d//9tmzZ59x33333foP//APv81V/2XOnDnzIEl6sRd7sdcGeLEXe7HXuuaaax585syZB19zzTUP5oU4e/bsM+67776n33fffbf+1m/91vf8wz/8w2/zv8g111zz4Nd+7dd+r9d5ndd572uuuebBAPfdd9+tv/Vbv/Xdv/3bv/0999133608Hy/2Yi/22i/2Yi/2Wu/0Tu/02TyX++6779bf+q3f+u7f/u3f/p777rvvVl6Aa6655sHv+I7v+Fmv8zqv89733Xffrb/1W7/13T/6oz/6OfwbXXPNNQ/+sA/7sO968Rd/8de+7777bj179uytL/ZiL/ba9913361f//Vf/z7/8A//8Ns8lw//8A//rtd5ndd579/6rd/67td5ndd5b4DP/MzPfJ1/+Id/+G2uuuqqq6666qr7oQc96EFcddVVV1111VXP6R3f8R0/653e6Z0++7d+67e++3Ve53Xe+7777rv167/+69/nH/7hH377J37iJwzwIR/yIQ+57777buWFeJ3XeZ33fsd3fMfPuuaaax7MM73d272d+Hd6sRd7sdd+p3d6p896sRd7sdcG+JEf+ZHP/tEf/dHP4T/QNddc8+DXfu3Xfq8Xf/EXf+0Xe7EXe22e6b777rv1H/7hH377dV7ndd6bZ7rvvvtu/dEf/dHP+a3f+q3v5n+Ra6655sEv9mIv9tpnzpx50Iu/+Iu/9ou92Iu9Ni/Afffdd+vZs2dv/fu///vfBviHf/iH3/mHf/iH3+aq//GuueaaB585c+bB11xzzYNe7MVe7LUBrrnmmge/2Iu92GvzXO67775bJek3f/M3v+sf/uEffucf/uEffpv/Bc6cOfOga6655iGv8zqv816v8zqv894AZ8+efcZv/uZvfteP/uiPfs4111zz4Nd+7dd+r2uuueYhr/M6r/NePMB9991362/91m9999mzZ5/xW7/1W9/Nv8KZM2ce9Dqv8zrv/U7v9E6fDfAjP/Ijn/2jP/qjn8O/0ZkzZx70uZ/7ub99zTXXPBjgvvvuu/Xrv/7r3+cf/uEffpvn45prrnnwN33TNz2dZ/qHf/iH3/7Mz/zM1+Gqq6666qqrrnog9KAHPYirrrrqqquuuuo5veM7vuNnvdM7vdNn/8iP/Mhnv/iLv/hrv9iLvdhr/9Zv/dZ3/8M//MPvfPiHf/h3/dZv/dZ3f/3Xf/378CJ4x3d8x896p3d6p8/mmX7kR37ks3/7t3/7e+67775b+Td4sRd7sdf+3M/93N8CuO+++279+q//+vf5h3/4h9/mP9E111zz4Hd8x3f8rNd5ndd5b57LP/zDP/z2j/zIj3zOP/zDP/w2/0Ndc801Dz5z5syDX+zFXuy1rrnmmgdfc801D36xF3ux1+YFuO+++279h3/4h9++7777bv2Hf/iH3/6Hf/iH3+Gq/5POnDnzoGuuueYhL/ZiL/ZaL/7iL/7aL/ZiL/baPMB9991369mzZ2/9h3/4h9/5+7//+9/+h3/4h9/mf7hrrrnmwa/92q/9Xu/0Tu/02QD33Xffrddcc82DeYD77rvv1t/6rd/67n/4h3/4nX/4h3/4bf6d3vEd3/Gz3umd3umzAX7rt37ru7/+67/+ffg3+tzP/dzferEXe7HXBvit3/qt7/76r//69+GF+NzP/dzferEXe7HXBvj6r//69/mt3/qt7+aqq6666qqrrnog9KAHPYirrrrqqquuuuo5veM7vuNnvdM7vdNn/8iP/Mhn/8M//MPvfO7nfu5v3XfffbeePXv21hd7sRd77a//+q9/n9/6rd/6bl4En/u5n/tbL/ZiL/ba//AP//DbL/ZiL/baAPfdd9+tv/Vbv/XdP/qjP/o5/Cu82Iu92Gt/7ud+7m8B/MM//MNvf+Znfubr8J/sHd/xHT/rdV7ndd77mmuueTDAfffdd+s//MM//PY111zz4Bd7sRd7bZ7pvvvuu/Uf/uEffvu3fuu3vucf/uEffpv/Zi/2Yi/22i/2Yi/2Wu/0Tu/02bwA9913361nz5699e///u9/++zZs8/4+7//+986e/bsM7jq/61rrrnmwWfOnHnQ67zO67z3Nddc8+AXe7EXe20e4L777rv17Nmzt/7Wb/3W99x33323/sM//MNv8z/ENddc8+AzZ848+MVe7MVe653e6Z0+m+fjt37rt77767/+69+H/wQv9mIv9tqf+7mf+1sA9913362f9Vmf9Tr33XffrfwrfO7nfu5vvdiLvdhr33fffbdec801D77vvvtu/YZv+Ib3+fu///vf5gV4x3d8x896p3d6p88GeLu3eztx1VVXXXXVVVc9N/SgBz2Iq6666qqrrrrqOb3jO77jZ73TO73TZ//Ij/zIZ//oj/7o53zu537ub73Yi73Ya/NMb/d2bydeBJ/7uZ/7Wy/2Yi/22v/wD//w25/5mZ/5Otdcc82D3/Ed3/GzXud1Xue9Ae67775bv/7rv/59/uEf/uG3+Re8zuu8znt/+Id/+HcB/NZv/dZ3f/3Xf/378J/kmmuuefBrv/Zrv9c7vdM7fTbPdN999936W7/1W9/9oz/6o5/DM11zzTUPfu3Xfu33ep3XeZ33vuaaax7MM9133323nj179tb77rvv1n/4h3/4nfvuu+/Wf/iHf/ht/hNdc801D37t137t97rmmmse8jqv8zrvxQPcd999t549e/bWv//7v/9tgH/4h3/4nX/4h3/4ba666l9wzTXXPPjFXuzFXvvFXuzFXuuaa6558Iu92Iu9Ng9w33333foP//APv/0P//APv3Pffffd+g//8A+/zX+ha6655sGv/dqv/V4v/uIv/jov9mIv9lo8wH333Xfrb/3Wb303wOu8zuu89zXXXPPgs2fPPuM3f/M3v+tHf/RHP4f/BNdcc82DP+dzPue3rrnmmgffd999t37WZ33W69x333238iL43M/93N96sRd7sde+7777bv36r//693mxF3ux13qnd3qnzz579uwzPvMzP/O177vvvlt5Pj78wz/8u17ndV7nvX/rt37re77+67/+vbnqqquuuuqqq54betCDHsRVV1111VVXXfWcPvzDP/y7Xud1Xue9v/7rv/59fuu3fuu7X+d1Xue9P/zDP/y7AH7rt37ru7/+67/+ffgXvNiLvdhrf+7nfu5vAXzmZ37m6/zDP/zDb/NMr/M6r/Pe7/iO7/hZ11xzzYMBfuu3fuu7f/RHf/Rz7rvvvlt5Pt7xHd/xs97pnd7pswF+5Ed+5LN/9Ed/9HP4T3DNNdc8+LVf+7Xf653e6Z0+m2e67777bv3RH/3Rz/mt3/qt7+aFuOaaax782q/92u/1Oq/zOu99zTXXPJjnct9999169uzZW++7775b/+Ef/uF37rvvvlv/4R/+4bf5d7jmmmse/Nqv/drv9eIv/uKv/WIv9mKvzQPcd999t/7Wb/3Wd//2b//299x33323ctVV/wGuueaaB7/Yi73Ya7/Yi73Ya11zzTUPfrEXe7HX5gHOnj37jL//+7//rX/4h3/4nfvuu+/Wf/iHf/ht/oNdc801D37t137t93qd13md977mmmsezAPcd999t/7Wb/3Wd//2b//299x333238kzXXHPNg1/7tV/7vd7pnd7pswHuu+++W3/rt37ru3/0R3/0c/gPdubMmQd9xEd8xHe/2Iu92Gvfd999t/7Wb/3Wd//oj/7o5/BCfO7nfu5vvdiLvdhr33fffbd+yId8yEMArrnmmgd/+Id/+He92Iu92Gv/yI/8yGf/6I/+6OfwfPzET/yEAX7kR37ks3/0R3/0c7jqqquuuuqqq54betCDHsRVV1111VVXXfWcPvzDP/y7Xud1Xue9v/7rv/59fuu3fuu7r7nmmgd/0zd909MBvv7rv/59fuu3fuu7eSGuueaaB3/TN33T0wE+8zM/83X+4R/+4bd5Ltdcc82DX/u1X/u93umd3umzAe67775bf+u3fuu7f/RHf/RzeIAP//AP/67XeZ3XeW+Ar//6r3+f3/qt3/pu/hO84zu+42e9zuu8zntfc801Dwb4rd/6re/+0R/90c+57777buVf6Zprrnnwi73Yi732mTNnHvTiL/7ir33mzJkHX3PNNQ/m+bjvvvtu/Yd/+Iff/od/+Iffue+++279h3/4h9/mhbjmmmse/Nqv/drv9U7v9E6fzXP5h3/4h9/++7//+9/+0R/90c/hqqv+C1xzzTUPfrEXe7HXfrEXe7HXep3XeZ335rncd999t/7DP/zD7/zDP/zDb//Wb/3Wd/NvcM011zz4tV/7td8L4J3e6Z0+mwe47777bv2t3/qt7wb40R/90c/hX3DmzJkHfcRHfMR3v9iLvdhrA9x33323fv3Xf/37/MM//MNv8x/ommuuefBrv/Zrv9c7vdM7fTbAj/7oj37Oj/zIj3w2z+Waa6558Id/+Id/14u92Iu99n333Xfrh3zIhzyEB7jmmmse/E3f9E1PB/jMz/zM1/mHf/iH3+YB3vEd3/Gz3umd3umzAX7kR37ks3/0R3/0c7jqqquuuuqqq54betCDHsRVV1111VVXXfWcPvzDP/y7Xud1Xue9v/7rv/59fuu3fuu7X+d1Xue9P/zDP/y7AO67775bP+uzPut17rvvvlt5AT73cz/3t17sxV7stf/hH/7htz/zMz/zdXghrrnmmge/9mu/9nu90zu902cD3Hfffbd+/dd//fv8wz/8w29/7ud+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+Id/+O377rvv1n/4h3/4nbNnz95633333cr/Yd/0Td/0dIBrrrnmwfwPcfbs2Wfcd999T7/vvvtu/Yd/+IffAbjvvvtu/Yd/+Iff5r/YNddc8+AzZ848+JprrnnwmTNnHvTiL/7irw3oxV7sxV6LF+K+++679ezZs7f+/d///W8D/MM//MPvAPzDP/zDb/MiOHPmzINe53Ve571f53Ve572vueaaBwOcPXv2GX//93//W7/1W7/1Pf/wD//w2/wXOXPmzINe53Ve573f6Z3e6bMB7rvvvls/67M+63Xuu+++W3kRXHPNNQ9+7dd+7fd6p3d6p88GuO+++279rd/6re/+0R/90c95x3d8x896p3d6p88+e/bsMz74gz/4wbyIPvzDP/y7Xud1Xue9f+u3fuu7X+d1Xue9AT7kQz7kIS/2Yi/22h/+4R/+Xb/1W7/1PV//9V//3lx11VVXXXXVVc8NPehBD+Kqq6666qqrrnpen/u5n/tbL/ZiL/baAL/1W7/13V//9V//PjyXa6655sHf9E3f9HSe6TM/8zNf5x/+4R9+m3+FF3uxF3vtz/3cz/0tgH/4h3/47c/8zM98HZ6Pa6655sGv/dqv/V7v9E7v9NkA9913361f//Vf/z7/8A//8Nu8AC/2Yi/22p/7uZ/7WzzTj/zIj3z2j/7oj34O/0WuueaaB7/2a7/2e73TO73TZ/NM9913362/9Vu/9d0/+qM/+jn8F7rmmmsefObMmQdfc801D36xF3ux17rmmmse/GIv9mKvzQtx33333SpJ991339MB7rvvvlsB7rvvvlvPnj37DID77rvvVoCzZ8/eCnDffffdyv9S11xzzYNtW5J4pjNnzjwYMCCAa6655sFcYUAAZ86ceRAPcM011zyY53LNNdc8mAc4c+bMg3mma6655sG8EPfdd9+tZ8+evfW+++67FdA//MM//PZ9991369mzZ2+97777buXf4JprrnkwwIu92Iu99pkzZx50zTXXPPiaa6558Iu92Iu9Ni/Efffdd+vZs2dvve+++2697777bj179uwz7rvvvlv/4R/+4bf5D3LNNdc8+MVe7MVe+3Ve53Xe68Ve7MVem2e67777bv3RH/3Rz/mt3/qt7+a/yDXXXPPgD//wD/+uF3uxF3vts2fPPuM3f/M3v+tHf/RHP4cX4Jprrnnwa7/2a7/XO73TO302z/QjP/Ijn/2jP/qjn8MzXXPNNQ/+8A//8O96sRd7sdf+rd/6re/++q//+vfhRfBiL/Zir/25n/u5v8Uz/dZv/dZ3f/3Xf/37vM7rvM57f/iHf/h3/dZv/db3fP3Xf/17c9VVV1111VVXPTf0oAc9iKuuuuqqq6666nm92Iu92Gt/7ud+7m8B/NZv/dZ3f/3Xf/378Hy84zu+42e90zu902cD/MiP/Mhn/+iP/ujn8CJ6sRd7sdf+3M/93N8C+Id/+Iff/szP/MzX4V9wzTXXPPhzPudzfuuaa655MMBv/dZvffeP/uiPfs599913K890zTXXPPjDP/zDv+vFXuzFXhvgH/7hH37767/+69/nvvvuu5X/Atdcc82DX/u1X/u93umd3umzeab77rvv1h/90R/97N/6rd/6Hv6HuOaaax4M8GIv9mKv/WIv9mKvdc011zwY4MVe7MVem3+H++6771YASbrvvvueft99990KcN9999169uzZZwDcd999t/JMZ8+evfW+++67lf/Hzpw586BrrrnmIddcc82DX+zFXuy1AK655poHv9iLvdhr80Lcd999t0rS3//93/8WwD/8wz/8zn333Xfr2bNnb+WZXuzFXuy1z5w586BrrrnmIddcc82DXuzFXuy1eSHuu+++WwH+4R/+4bfvu+++W8+ePfuM++677+n/8A//8Dv8Fztz5syDXud1Xue93+md3umzeaazZ88+4zd/8ze/67d/+7e/57777ruV/2TXXHPNg1/7tV/7vd7pnd7pswF+5Ed+5LN/9Ed/9HN4Lu/4ju/4We/0Tu/02TzTP/zDP/z213/917/PfffddyvP5ZprrnnwN33TNz0d4Ed+5Ec++0d/9Ec/hxfB537u5/7Wi73Yi702wGd+5me+zj/8wz/89uu8zuu894d/+Id/12/91m99z9d//de/N1ddddVVV1111XNDD3rQg7jqqquuuuqqq57XNddc8+AP//AP/64Xe7EXe+3f+q3f+u6v//qvfx+ey+u8zuu894d/+Id/F89033333fpbv/Vb3/2jP/qjn8O/4HVe53Xe+8M//MO/C+C3fuu3vvvrv/7r34cX0TXXXPPg137t136vd3qnd/psgPvuu+/W3/qt3/ruH/3RH/2cd3zHd/ysd3qnd/psgPvuu+/W3/qt3/ruH/3RH/0c/gtcc801D37t137t93qnd3qnz+aZ/uEf/uG3f+RHfuRz/uEf/uG3+V/mmmuuebBtX3PNNQ8BuOaaax4McObMmQddc801Dwa45pprHgxw5syZBwNcc801D+bf6L777ruVZzp79uwz7rvvvqfzTPfdd9+tZ8+efQbAfffddyvA2bNnb73vvvtu5X+Ra6655sE8lzNnzjyYB7jmmmsezAO82Iu92Gtdc801Dz5z5syDr7nmmgfzH+C+++67FeAf/uEffvu+++679ezZs8+47777bv2Hf/iH3+Z/oGuuuebBL/ZiL/bar/M6r/NeL/ZiL/baPNM//MM//PZv/dZvfc9v/dZvfTf/yd7xHd/xs97pnd7pswF+5Ed+5LN/9Ed/9HMAXuzFXuy1P/zDP/y7rrnmmgcD3Hfffbd+/dd//fv8wz/8w2/zQrzO67zOe3/4h3/4d9133323fv3Xf/37/MM//MNv8y/43M/93N96sRd7sdcGeLu3ezsBvNiLvdhrf+7nfu5v/cM//MPvfOZnfuZrc9VVV1111VVXPTf0oAc9iKuuuuqqq6666vl7x3d8x896p3d6p8/+h3/4h9/+zM/8zNfhuXz4h3/4d73O67zOe//Wb/3Wd9933323vtM7vdNn33fffbd+/dd//fv8wz/8w2/zArzYi73Ya3/u537ubwH8yI/8yGf/6I/+6Ofwb3DNNdc8+LVf+7Xf653e6Z0+m+fyD//wD7/9mZ/5ma/Df4Frrrnmwe/4ju/4Wa/zOq/z3jzTj/zIj3z2b//2b3/Pfffddyv/z1xzzTUPBjhz5syDAF1zzTUPBjhz5syDrrnmmgcDXHPNNQ8GOHPmzIMBrrnmmgfz73DffffdCnD27Nlb77vvvmcABrjvvvtuPXv27DMA7rvvvlsBzp49e+uZM2cezANcc801D+YBzpw58yCeyzXXXPNgnk3XXHPNg3hOOnPmzIN4pmuuuebB/A9233333Xr27Nln/P3f//1v/cM//MPv/MM//MNv87/AmTNnHvRO7/ROn/06r/M6780znT179hm/+Zu/+V2//du//T333XffrfwneZ3XeZ33/vAP//DvAvit3/qt777mmmse/GIv9mKvDXDffffd+qM/+qOf81u/9VvfzYvoHd/xHT/rnd7pnT77vvvuu/WzPuuzXue+++67lRfgcz/3c3/rxV7sxV4b4OzZs8/4uq/7uvf+h3/4h99+sRd7sdf+3M/93N/6h3/4h9/5zM/8zNfmqquuuuqqq656buhBD3oQV1111VVXXXXV8/c6r/M67/3hH/7h33Xffffd+iEf8iEP4bn8xE/8hAE+5EM+5CH33Xffre/4ju/4We/0Tu/02ffdd9+tX//1X/8+//AP//DbPJcXe7EXe+3P/dzP/S2Ar//6r3+f3/qt3/pu/p0+/MM//Lte53Ve5715gPvuu+/Wf/iHf/jt3/qt3/qef/iHf/ht/hO84zu+42e9zuu8zntfc801Dwa47777bv2t3/qt7/7RH/3Rz+Gqf7VrrrnmwTzTmTNnHnTNNdc8BODMmTMPuuaaax7MM11zzTUPBjhz5syDr7nmmgfzv8h99913K8/l7Nmzt/IA99133608wH333Xcrz+Xs2bPP4Jnuu+++pwPiAf7hH/7ht6+55poHA7zYi73YawO82Iu92Gtdc801Dz5z5syDr7nmmgfzXO67775b/+Ef/uG3/+Ef/uF37rvvvlv/4R/+4bf5H+yaa6558Gu/9mu/14u/+Iu/9ou92Iu9NsB9991362/91m9992//9m9/z3333Xcr/wle7MVe7LU/93M/97d4pvvuu+/W3/qt3/ruH/3RH/0c/pWuueaaB3/4h3/4d73Yi73Ya//DP/zDb3/mZ37m6/B8fO7nfu5vvdiLvdhrA9x33323XnPNNQ/+kR/5kc/+0R/90c95sRd7sdf+3M/93N/6h3/4h9/5zM/8zNfmqquuuuqqq656buhBD3oQV1111VVXXXXV8/c6r/M67/3hH/7h3wXw9V//9e/zW7/1W9/NM73O67zOe3/4h3/4d/3DP/zDb3/mZ37m6/BM7/iO7/hZ7/RO7/TZ9913362f9Vmf9Tr33XffrTzA537u5/7Wi73Yi732b/3Wb33313/9178P/w7XXHPNgz/8wz/8u17sxV7stQF+67d+67vvu+++W1/8xV/8tV/sxV7stXmm++6779bf+q3f+u5/+Id/+J1/+Id/+G3+nd7xHd/xs17ndV7nva+55poHA9x33323/tZv/dZ3/+iP/ujncNV/uWuuuebBPNOZM2cefM011zwIEMCZM2cedM011zwY4JprrnkwwJkzZx589uzZW3mA++6771Ye4L777ruV53L27Nln8Gy+7777nsFz8tmzZ5/BM913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v87rvM5733fffbd+yId8yEM+93M/97de7MVe7LW//uu//n1+67d+67t5Aa655poHf87nfM5vXXPNNQ8G+Id/+Iff/szP/MzX4d/odV7ndd77wz/8w78L4Ed+5Ec++0d/9Ec/h3+ja6655sEv9mIv9tqv8zqv814v9mIv9to803333Xfr2bNnb32xF3ux1+aZfuRHfuSzf/u3f/t77rvvvlu56qqruOaaax78Yi/2Yq/1Yi/2Yq99zTXXPPjFXuzFXpsHuO+++279h3/4h9/+h3/4h9/5rd/6re/mv9E111zz4A//8A//rhd7sRd7bYD77rvv1s/6rM96nfvuu+9Wnumaa6558Gu/9mu/1zXXXPPg13md13lvnum+++679bd+67e++0d/9Ec/h3/BO77jO37WO73TO302wI/8yI989o/+6I9+Dv9KZ86cedDnfu7n/vY111zzYIDP/MzPfJ1/+Id/+G2ej8/93M/9rRd7sRd7bYDf+q3f+u6v//qvfx+uuuqqq6666qrnh3L8+HGuuuqqq6666qrn78Ve7MVe+8Vf/MVf+0//9E9/WhIPechDXvrs2bPPePM3f/OPBviSL/mSt+GFODw83D06Orr0iq/4im8N8A//8A+//ad/+qc/w7/B67zO67z3h3/4h38XwNd//de/zy/8wi98Df8Oh4eHu7feeutf/9Zv/db3/PZv//b3HB4e7r74i7/4a29ubh6/5pprHswz/ciP/Mhn/8M//MPv3HrrrX/NVVddddnh4eHurbfe+jd/+qd/+jO/9Vu/9T2//du//T233nrr3xweHu4+5CEPeenNzc3jD3nIQ176FV/xFd/6dV/3dd/nzd7szT5qc3PzOKCzZ8/eyn+hw8PD3d/6rd/6HoBrrrnmwddcc82DX/EVX/GtNzc3j7/Yi73Ya7/TO73T57zP+7zPV734i7/4az/kIQ95aYD77rvv1u/6ru/6mK//+q9/n3/4h3/4HV4E//AP//A7Z8+efcYrvuIrvvWLv/iLv/Y111zz4D/90z/9Gf4VXumVXultXud1Xue9Ae67775b//RP//Rnzp49eyvPx5kzZx784i/+4q8N8F3f9V0fc/bs2Vu56qqrrrrqqqueH/SgBz2Iq6666qqrrrrq+XvHd3zHz3qnd3qnz/6RH/mRz/6Hf/iH3/ncz/3c3+KZfuu3fuu7v/7rv/59+Bf8xE/8hAHuu+++W6+55poH33fffbf+1m/91nf/6I/+6OfwInrHd3zHz3qnd3qnzwb4+q//+vf5rd/6re/mP9A111zz4A//8A//rhd7sRd7bYDf+q3f+u4Xe7EXe+1rrrnmwTzTfffdd+tv/dZvffdv//Zvf8999913K1ddddXzdc011zwY4LVf+7Xf68Vf/MVf+8Ve7MVem2e67777bgX40R/90c/5rd/6re/mv9iLvdiLvdaHf/iHf/c111zzYJ7Lfffdd+tv/dZvffeP/uiPfg7/DmfOnHnQ537u5/72Nddc8+D77rvv1s/6rM96nfvuu+9W/gWv8zqv894f/uEf/l0Av/Vbv/Xdr/M6r/Pe//AP//Dbn/mZn/k6PB/v+I7v+Fnv9E7v9NkAb/d2byeuuuqqq6666qoXhHL8+HGuuuqqq6666qrn78Ve7MVe+8Vf/MVf+x/+4R9++3GPe9zvvPmbv/lH80zf9V3f9TFnz569lRficz/3c3/rmmuuefA//MM//PaXfumXvs1DHvKQl37IQx7y0i/+4i/+2tdcc82Db7311r85PDzc5YX48A//8O968zd/848G+MzP/MzX+dM//dOf5j/QO77jO37WJ33SJ/30Nddc8+D77rvv1i/5ki95m1/4hV/4ml/4hV/4mt/6rd/67s3NzeMPechDXnpzc/P4i7/4i7/2K73SK73NK77iK74VoFtvvfWvueqqq57D4eHh7uHh4e4//MM//M5v/dZvfc9v/dZvffef/umf/gzAi7/4i7/25ubm8Vd8xVd869d5ndd5783NzeNnz559xuHh4S7/Sa655poHv9mbvdlHffiHf/h3v/mbv/lHb25uHue5/NZv/dZ3f8M3fMP7/Omf/unP8O90dHR06c/+7M9+5hVf8RXf+pprrnnwK77iK771n/3Zn/3M4eHhLi/A67zO67z3h3/4h38XwNd//de/z2//9m9/z0Me8pCXfrEXe7HXftzjHvc799133608l3d6p3f67GuuuebBP/IjP/LZ//AP//A7XHXVVVddddVVLwjl+PHjXHXVVVddddVVz9+LvdiLvfaLv/iLv/Y//MM//Paf/umf/sw111zz4Ic85CEvDfD1X//178ML8Tqv8zrv/eZv/uYfDfBZn/VZr3Pffffd+g//8A+/c3h4uPviL/7ir/2QhzzkpV/x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Ndc8+E//9E9/hn8jSbziK77iW19zzTUPBvit3/qt7/76r//69+GFODw83L3mmmse/OIv/uKvDfCnf/qnP/PhH/7h3w3wXd/1XR/ziq/4im999uzZW//0T//0Z7jqqquuuuqqq14Q9KAHPYirrrrqqquuuur5e7EXe7HX/tzP/dzfArjvvvtuPXv27K2f+Zmf+ToA11xzzYM//MM//Lte7MVe7LXvu+++W//hH/7ht1/ndV7nve+7775bP+RDPuQhvIiuueaaB3/4h3/4d73Yi73Ya9933323fv3Xf/37nD179tbXfu3Xfq93eqd3+myA++6779av//qvf59/+Id/+G1eBNdcc82DP/zDP/y7XuzFXuy1AX7rt37ru7/+67/+ffgf5Jprrnnwi73Yi732mTNnHnTNNdc8+MVe7MVe+5prrnkwz+W+++67FeAf/uEffucf/uEffvu+++679R/+4R9+m6uu+j/kmmuuefBrv/Zrv9c111zz4Nd5ndd5bx7gvvvuu/W3fuu3vvvs2bPPeJ3XeZ33erEXe7HXBrjvvvtu/Yd/+Iff/q3f+q3v+Yd/+Iff5j/JNddc8+Bv+qZvejrAP/zDP/z2Z37mZ74O/wrXXHPNg1/7tV/7vd7pnd7ps3mA3/qt3/rur//6r38f/gVnzpx50Dd/8zffet999936D//wD7/9Oq/zOu/9W7/1W9/zD//wD7/94R/+4d/1W7/1W9/99V//9e/DVVddddVVV131gqAHPehBXHXVVVddddVVL9jnfu7n/taLvdiLvTbAb/3Wb33313/9178Pz3TNNdc8+MM//MO/68Ve7MVem2f6zM/8zNf5h3/4h9/mRXDNNdc8+MM//MO/68Ve7MVe+7777rv1Qz7kQx7CA7zYi73Ya3/4h3/4d11zzTUPvu+++279rd/6re/+0R/90c/hhXjHd3zHz3qnd3qnzwa47777bv36r//69/mHf/iH3+Z/gWuuuebBZ86cefA111zzoBd7sRd77WuuuebBL/ZiL/baPJf77rvvVoB/+Id/+J1/+Id/+O377rvv1n/4h3/4ba666n+wa6655sEAL/ZiL/baZ86cedA111zz4GuuuebBL/ZiL/baPJf77rvv1t/6rd/67t/6rd/67rNnzz6DBzhz5syD3umd3umzX+d1Xue9eaazZ88+4zd/8ze/60d/9Ec/h/8E11xzzYM/53M+57euueaaB9933323ftZnfdbr3HfffbfyL3jHd3zHz3qnd3qnz+aZfuRHfuSzf/u3f/t7vumbvunpAF//9V//Pr/1W7/13fwLPvdzP/e3XuzFXuy1eabP/MzPfJ1rrrnmwR/+4R/+Xb/1W7/13V//9V//Plx11VVXXXXVVS8IetCDHsRVV1111VVXXfWCveM7vuNnvdM7vdNnA/zWb/3Wd3/913/9+/AA11xzzYM/53M+57euueaaB//DP/zDb3/mZ37m6/Ai+vAP//Dvep3XeZ33vu+++279kA/5kIfwfFxzzTUPfu3Xfu33eqd3eqfPBrjvvvtu/a3f+q3v/tEf/dHP4QGuueaaB3/4h3/4d73Yi73YawP8wz/8w29/5md+5uvwv9w111zz4DNnzjz4mmuuedCLvdiLvfY111zz4Bd7sRd7bZ7LfffddyvAP/zDP/zOP/zDP/z2fffdd+s//MM//DZXXfVf7JprrnnwmTNnHvxiL/ZirwXw4i/+4q/zYi/2Yq/FC3Hffffd+g//8A+/fd999936oz/6o5/Di+Caa6558Gu/9mu/1+u8zuu89zXXXPNggH/4h3/47b//+7//7R/90R/9HP6DnTlz5kGf+7mf+9vXXHPNg++7775bP+uzPut17rvvvlt5Pl7sxV7stT/8wz/8u6655poHA/zDP/zDb3/913/9+9x33323ArzO67zOe3/4h3/4d9133323ftZnfdbr3HfffbfyQrzO67zOe3/4h3/4dwH8wz/8w29/5md+5uu8zuu8znt/+Id/+Hf91m/91nd//dd//ftw1VVXXXXVVVe9IOhBD3oQV1111VVXXXXVC3bNNdc8+Ju+6ZueDvBbv/Vb3/31X//178Nz+aZv+qanX3PNNQ8G+JEf+ZHP/tEf/dHP4V/w4R/+4d/1Oq/zOu/9D//wD7/9mZ/5ma/Dv+Caa6558Id/+Id/14u92Iu9NsBv/dZvfc+P/uiPfvZ999136zu+4zt+1ju90zt9NsB9991369d//de/zz/8wz/8Nv9HXXPNNQ8+c+bMg6+55poHvdiLvdhrX3PNNQ9+sRd7sdfm+bjvvvtu/Yd/+Iff+Yd/+Iffvu+++279h3/4h9/mqqv+na655poHA7zYi73Ya585c+ZB11xzzYOvueaaB7/Yi73Ya/NC3Hfffbf+wz/8w2/fd999t549e/YZ9913363/8A//8Nv8O1xzzTUPfrEXe7HXep3XeZ33frEXe7HXBvit3/qt7/7RH/3Rz7nvvvtu5T/QNddc8+DP+ZzP+a1rrrnmwffdd9+tn/VZn/U6991336080zXXXPPgD//wD/+uF3uxF3ttgPvuu+/Wr//6r3+ff/iHf/htnsuHf/iHf9frvM7rvPd9991364d8yIc8hBfimmuuefA3fdM3PR3g67/+69/nt37rt777dV7ndd77wz/8w7/rt37rt77767/+69+Hq6666qqrrrrqBaFy1VVXXXXVVVe9UPfdd9+t//AP//DbL/ZiL/ba99133608l9d5ndd572uuuebBPNM7vdM7fTbAj/7oj34OL8CLvdiLvfbrvM7rvDfAj/zIj3wOL4L77rvv1q//+q9/n9d+7dd+r3d6p3f67Nd5ndd5rxd7sRd7LYBrrrnmwQD/8A//8Nuf+Zmf+Tr8H3fffffdet999936D//wD/zWb/3W9wBcc801DwZ4sRd7sdd6sRd7sde+5pprHvxiL/Zir33NNdc8+Jprrnnw67zO67wXz3Tffffd+g//8A+/c9999z39H/7hH37nH/7hH36bq656Pq655poHnzlz5sEv9mIv9loAL/7iL/7aL/ZiL/bavBD33XffrWfPnr317//+738b4B/+4R9++x/+4R9+h/8k991336333Xffrf/wD//wO6/92q/9Xu/0Tu/02a/zOq/z3i/+4i/+Or/5m7/5XT/6oz/6OfwHue+++279rM/6rNf58A//8O96sRd7sdf+3M/93N/+uq/7uvc+e/bsra/92q/9Xu/0Tu/02QD33Xffrb/1W7/13T/6oz/6ObwAP/IjP/LZL/ZiL/ba11xzzYPf8R3f8bN+9Ed/9HN4Ac6cOfNgnunMmTMP4qqrrrrqqquu+tdAD3rQg7jqqquuuuqqq164d3zHd/ysd3qnd/rsf/iHf/jtz/zMz3wdHuDDP/zDv+t1Xud13vu3fuu3vvsf/uEffufDP/zDv+u+++679bd+67e++0d/9Ec/h+fjm77pm55+zTXXPPhHfuRHPvtHf/RHP4d/pWuuuebBr/3ar/1e7/RO7/TZPNOP/MiPfPaP/uiPfg5XPcs111zzYIAXe7EXe60Xe7EXe+1rrrnmwS/2Yi/22jwf9913363/8A//8DuA/+Ef/uF37rvvvlsBzp49e+t99913K1f9n3XNNdc8GODFXuzFXvvMmTMPuuaaax5yzTXXPOjFXuzFXpsX4r777rv1H/7hH377vvvuu/Xs2bPPuO+++279h3/4h9/mv9k111zz4Nd+7dd+r3d6p3f6bID77rvv1s/6rM96nfvuu+9W/oNcc801D37t137t93qnd3qnz77vvvtuveaaax7MM/3Ij/zIZ//oj/7o5/AieLEXe7HX/tzP/dzfuu+++279+q//+vf5h3/4h9/mubzYi73Ya3/u537ub/FM9913360f8iEf8pDXeZ3Xee8P//AP/67f+q3f+u6v//qvfx+uuuqqq6666qoXhMpVV1111VVXXfUie7EXe7HXfrEXe7HX/od/+Iff5ple7MVe7LUBfuu3fut7/uEf/uG3z5w586B3eqd3+uzXeZ3Xee9/+Id/+J1/+Id/+G0e4MM//MO/65prrnnwP/zDP/z2j/7oj34O/wb33XffrS/+4i/+2jzA67zO67y3JP3Ij/zIZ3PVZffdd9+tAPfdd9+tv/Vbv/U9PNM111zz4Bd7sRd7rRd7sRd77WuuuebBL/ZiL/ba11xzzYOvueaaBwO8zuu8znvzfNx33323Apw9e/YZgO+7775bAe67775bz549+wyA++6771aAs2fP3nrffffdylX/Y1xzzTUPPnPmzINf7MVe7LUAXvzFX/y1X+zFXuy1eSHuu+++W8+ePXvr3//93/82wD/8wz/8zj/8wz/8Nv+D3Xfffbf+6I/+6OecPXv21nd8x3f87GuuuebBn/M5n/Nbv/Vbv/XdP/qjP/o5/Ae47777bv2Hf/iH37nvvvtuveaaax7MM33mZ37m6/zDP/zDb/Mi+od/+Iff/pEf+ZHPfqd3eqfP/vAP//Dv+pAP+ZCH8ADXXHPNgz/3cz/3twD+4R/+4bcBXuzFXuy1X/zFX/y177vvvlsBrrnmmgdz1VVXXXXVVVe9MFSuuuqqq6666qp/ldd5ndd5r3/4h3/4bYDXeZ3Xee9rrrnmwQD/8A//8NsAP/qjP/o5AO/0Tu/02R/+4R/+XZ/1WZ/1Ovfdd9+tAC/2Yi/22q/zOq/z3gA/8iM/8jn8G33u537ub73Yi73YawN8/dd//fucOXPmQe/0Tu/02e/4ju/4Wa/92q/9Xr/1W7/13b/927/9Pffdd9+tXPU87rvvvlvvu+++W3/rt37re3ima6655sEv9mIv9lpnzpx58DXXXPPga6655sEAZ86cefA111zzYIBrrrnmwQDXXHPNgwFe7MVejBfFfffddyvA2bNnb73vvvueARjgvvvuu/Xs2bPPALjvvvtuBTh79uyt9913361c9a92zTXXPJhnerEXe7HXPnPmzIOuueaaB19zzTUPfrEXe7HX5oW47777bv2Hf/iH377vvvtuPXv27K333XffM/7hH/7ht/lf7Ld+67e+5x/+4R9+57Vf+7Xf653e6Z0++53e6Z0++3Vf93Xf5+u+7uve+x/+4R9+m3+ja6655sHv+I7v+Fmv8zqv894A9913363XXHPNgwFe7MVe7LX+4R/+4bf5V/jt3/7t73nxF3/x136xF3ux1/7wD//w7/r6r//69wG45pprHvxN3/RNTwf4h3/4h9/+zM/8zNd5x3d8x896sRd7sdd+7dd+7ff6rd/6re/hqquuuuqqq656UaAHPehBXHXVVVddddVVL9w7vuM7ftY7vdM7fTbAfffdd+uHfMiHPATgwz/8w7/rdV7ndd77t37rt77767/+69+HZ7rmmmse/I7v+I6f9Tqv8zrvfd999936WZ/1Wa9z33333fpN3/RNT7/mmmse/CM/8iOf/aM/+qOfw7/B537u5/7Wi73Yi732fffdd+vXf/3Xv88//MM//DbANddc8+AP//AP/64Xe7EXe22e6b777rv1R3/0Rz/nt37rt76bq/7drrnmmgcDnDlz5kGArrnmmgcDnDlz5kHXXHPNgwGuueaaBwOcOXPmwddcc82D+Tc6e/bsM2wb4OzZs7fed999twK67777nn727Nln8Ez33XffrWfPnr0V4L777ruV/2bXXHPNg3mAM2fOPJgHuOaaax7MM505c+ZBPJdrrrnmwTzTNddc8xDAPNOZM2ceLEm2DXDNNdc8mH+F++6779azZ8/e+vd///e/DfAP//APv/MP//APv83/A9dcc82DP+dzPue3rrnmmgffd999t/7Wb/3Wd//oj/7o5/Cv9I7v+I6f9U7v9E6fzTP9yI/8yGf/6I/+6Oe84zu+42e90zu902cD/OiP/ujn/MiP/Mhn869wzTXXPPibvumbng7w9V//9e/zD//wD7/94R/+4d/1Yi/2Yq/9D//wD7/9mZ/5ma8DcM011zz4m77pm55+9uzZZ/zmb/7md73TO73TZ3/913/9+/zWb/3Wd3PVVVddddVVV70g6EEPehBXXXXVVVddddUL947v+I6f9U7v9E6fzTN95md+5uv8wz/8w29/0zd909OvueaaB3/Ih3zIQ+67775beYBrrrnmwR/+4R/+XS/2Yi/22vfdd9+t//AP//Dbr/M6r/Pe//AP//Dbn/mZn/k6/Bt87ud+7m+92Iu92Gvfd999t37913/9+/zDP/zDb/NcXuzFXuy1X+d1Xue9Xud1Xue9eab77rvv1n/4h3/47d/6rd/6nn/4h3/4ba76L3XNNdc8GODMmTMPvuaaax4ECODMmTMPuuaaax4McM011zwY4MyZMw++5pprHsy/0X333XerJNn2vbvLS3ct+5lLN7t7P6d7L+ydrQd3PaW/+OQ/j2m5v7r25d7o1C2PfGWA/uJT/rxeuvXvAa655poH80zXXHPNgwEBBjhz5syDASTJtq+55poH8z/EfffddyvA2bNnb73vvvtuve+++249e/bsM+67775b/+Ef/uG3+X/ummuuefBrv/Zrv9c7vdM7fTbAfffdd+uP/uiPfs5v/dZvfTf/ghd7sRd77c/93M/9LZ7pH/7hH37767/+69/nvvvuu5Vnep3XeZ33/vAP//DvAviRH/mRz/7RH/3Rz+Ff4XVe53Xe+8M//MO/67777rv17Nmzt77Yi73Ya//DP/zDb3/mZ37m6/AAn/u5n/tbL/ZiL/baPNNnfuZnvs4//MM//DZXXXXVVVddddULgh70oAdx1VVXXXXVVVe9cO/4ju/4We/0Tu/02ffdd9+t11xzzYP/4R/+4bd/67d+63s+/MM//LsA3u7t3k48H9dcc82DP+dzPue3rrnmmgfzTJ/5mZ/5Ov/wD//w2/wrfe7nfu5vvdiLvdhr33fffbd+/dd//fv8wz/8w2/zQlxzzTUPfrEXe7HXfp3XeZ33erEXe7HX5pnuu+++W3/7t3/7e/7+7//+t//hH/7ht7nqf6QzZ848SJIAzpw58+BrrrnmwYDPnDnz4GuuuebBANdcc82DAc6cOfNggGuuuebB/De77777buUBzp49eysPcN99993KM91333238lzOnj37DJ7pvvvuezogHuC+++57uiQB3Hfffbdy1b/aNddc8+AP//AP/64Xe7EXe22A3/qt3/qe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bZ6PF3/xF39tgDNnzjyYq6666qqrrrrq3wI96EEP4qqrrrrqqquuetG84zu+42e90zu902f/wz/8w29/5md+5uvwTK/zOq/z3h/+4R/+Xf/wD//w23//93//2+/0Tu/02ffdd9+tn/VZn/U699133608l8/93M/9rRd7sRd77R/90R/9nB/5kR/5bF5E11xzzYM/53M+57euueaaB589e/YZv/mbv/ldP/qjP/o5/B9z5syZB734i7/467zYi73Ya11zzTUPfrEXe7HX5vk4e/bsM/7+7//+t/7hH/7hd+67775b/+Ef/uG3uQqE1p+y84v0mgPUX159Y/nj9Y/xAHlzfbHx/Te/AWOA7uv33zvO5TO46j/cNddc8+AXe7EXe+0zZ8486JprrnnwNddc8+AXe7EXe22ej3/4h3/47b//+7//7R/90R/9HP4XOHPmzIO++Zu/+VaAf/iHf/jtM2fOPPiaa655MMCP/MiPfPaP/uiPfg4vxDu+4zt+1ju90zt99n333Xfrh3zIhzyE5/JiL/Zir/25n/u5v8UzfeZnfubrXHPNNQ/+8A//8O/6rd/6re/++q//+vfhqquuuuqqq676l1C56qqrrrrqqqv+1c6cOfNgHuDFXuzFXgvg7//+73/7t3/7t7/nxV7sxV77xV/8xV/7cz7nc37rQz7kQx7CA7zjO77jZ73Yi73Ya9933323/siP/Mhn869w33333fpZn/VZr/Par/3a7/VO7/ROn/1O7/ROn/06r/M67/31X//17/MP//APv83/EWfPnn3Gb/3Wb333b/3Wb303z3TmzJkHvfiLv/jrvNiLvdhrXXPNNQ9+sRd7sdc+c+bMg17ndV7nvV/ndV7nvXmms2fPPuPv//7vf+sf/uEffue+++679R/+4R9+m/9nfEzX5kv1b0BQAPiF5dfyXPzg8tL52O61AGiMOvQFrvp3ueaaax78Yi/2Yq995syZB11zzTUPvuaaax78Yi/2Yq/NC3Dffffdevbs2Vv//u///rcBfvRHf/Rz+F/m7Nmzz/jMz/zM1/ncz/3c33qxF3ux1wa47777bv36r//69/mHf/iH3+Zf8Nu//dvf8+Iv/uKv/WIv9mKv/eEf/uHf9fVf//XvwzNdc801D/7cz/3c3zp79uwz/v7v//63Xud1Xue93+md3umzfuu3fut7uOqqq6666qqr/jWoXHXVVVddddVV/2rXXHPNg1/ndV7nvX/rt37ruwFe7MVe7LUBfvu3f/t77rvvvlu//uu//r0/93M/97evueaaB3/u537ub33mZ37m6wBcc801D36nd3qnzwb4+q//+vfh3+C+++679Ud/9Ec/57d+67e++3M/93N/+5prrnnwh3/4h3/Xb/3Wb333j/7oj34O/0edPXv2Gb/1W7/13b/1W7/13QDXXHPNg237xV/8xV/nxV7sxV7rmmuuefCLvdiLvfaZM2ce9Dqv8zrv/Tqv8zrvDXDffffdKkl///d//1v/8A//8Dv33Xffrf/wD//w2/wfljfURxEUnkl3tH/gmX7iJ37CAG/5k+/xxTyTzuYztPIBV/2LrrnmmgcDvNiLvdhrnzlz5kEv/uIv/tpnzpx58DXXXPNgXoD77rvv1rNnz97693//978N8A//8A+/8w//8A+/zf8B7/iO7/hZ7/RO7/TZPIAknT179lZeBPfdd9+tX//1X/8+3/RN3/T013md13nv3/7t3/6ev//7v//ta6655sHf9E3f9HSA++677+k/+qM/+jmv8zqv895nzpx5MM90zTXXPJirrrrqqquuuupFQeWqq6666qqrrvo3eZ3XeZ33+q3f+q3vfp3XeZ33uuaaax4McN99990KcPbs2Wd81md91ut8zud8zm+92Iu92Gu/4zu+42f96I/+6Od8+Id/+HcB/NZv/dZ3/8M//MNv8+9w9uzZZ3zWZ33W67z2a7/2e73TO73TZ7/TO73TZ7/u677u+3zd133de//DP/zDb/N/3H333XcrwG/91m9992/91m99N8A111zzYNt+8Rd/8dd5sRd7sde65pprHvxiL/Zirw3wOq/zOu/9Oq/zOu8NcN99990qSX//93//W//wD//wO/fdd9+t//AP//Db/B/hm8pjeSatfBBn8xk8l7y5vjjPFLdP/4AxVz3LNddc82CA137t134vgBd/8Rd/nRd7sRd7LV6I++6779Z/+Id/+O377rvv1rNnzz7jvvvuu/Uf/uEffpv/g17sxV7stT/8wz/8u6655poHA/zWb/3Wd//oj/7o53zO53zOb11zzTUP/pzP+Zzf+qzP+qzXue+++27lX3Dffffd+vVf//Xv8+Ef/uHf9eEf/uHf/cEf/MEP/vAP//DvAviHf/iH3/7Mz/zM1wH4h3/4h99+sRd7sdd+x3d8x88C+K3f+q3v4aqrrrrqqquuelGgBz3oQVx11VVXXXXVVS+ad3zHd/ysd3qnd/psnukzP/MzX+d1Xud13ut1Xud13vu3fuu3vvvrv/7r34cHuOaaax78Td/0TU8H+Id/+IfffrEXe7HXBni7t3s78R/ommuuefDnfM7n/NY111zzYIAf+ZEf+ewf/dEf/Ryu4pprrnnwmTNnHnTNNdc85MVe7MVe65prrnnwi73Yi702z+W+++67VZL+/u///rf+4R/+4Xfuu+++WwHOnj1763333Xcr/4uM77v5ddObLD4cIJ4+/fXsE3dfhmf6iZ/4CQO82T0fcKuviQcD1J84+oLuh48+nf+HrrnmmgefOXPmwS/2Yi/2WgAv/uIv/tov9mIv9tq8EPfdd9+t//AP//Db9913361nz559xn333XfrP/zDP/w2/w9cc801D/7wD//w73qxF3ux1wa47777bv36r//69/mHf/iH3wa45pprHvw5n/M5v3XNNdc8+L777rv1sz7rs17nvvvuu5V/wTXXXPPgD//wD/+uF3uxF3ttnum+++679UM+5EMewjO9zuu8znu/4zu+42ddc801Dwb4zM/8zNf5h3/4h9/mqquuuuqqq676l6AHPehBXHXVVVddddVVL5p3fMd3/Kx3eqd3+mye6Ud+5Ec++3Ve53Xe+5prrnnwh3zIhzzkvvvuu5Xn8jqv8zrv/eEf/uHfxTN95md+5uv8wz/8w2/zH+yaa6558Gu/9mu/1zu90zt9NsB999136z/8wz/89m/91m99zz/8wz/8Nlc9yzXXXPPgM2fOPOiaa655yIu92Iu91jXXXPPgF3uxF3ttXoj77rvvVp7p7Nmzz7jvvvueDnDffffdevbs2WcA3HfffbcCnD179tb77rvvVv6brD/r2G/ki3evC1B+d/0D/dftvzvP9BM/8RMGeNPhg0YqHUD/1fvvUv5g/cP8H3bNNdc8+MyZMw9+sRd7sdcCePEXf/HXfrEXe7HX5gW47777bgX4h3/4h9++7777bv2Hf/iH3z579uwz7rvvvlv5f+od3/EdP+ud3umdPptn+pEf+ZHP/tEf/dHP4bmcOXPmQZ/7uZ/729dcc82D77vvvls/5EM+5CG8CK655poHf9M3fdPTAe67775bP+RDPuQhPMDrvM7rvPeHf/iHfxfP9HZv93biqquuuuqqq656UVC56qqrrrrqqqv+1f7hH/7ht1/sxV7std/pnd7ps3mm++6771aej9/6rd/67nd8x3f8rGuuuebB/Ce67777bv3RH/3Rz/nt3/7t73nHd3zHz3qd13md977mmmve+3Ve53Xe+7777rv1t37rt777R3/0Rz+Hq7jvvvtuve+++279h3/4h9/5rd/6re8GuOaaax585syZB11zzTUPOXPmzINe/MVf/LUBzpw58+Brrrnmwddcc82DeaZrrrnmwS/2Yi/2WrwI7rvvvlsBzp49e+t99913K6D77rvv6WfPnn0GwH333XcrwNmzZ28FuO+++27l38k3lsfwTLq9/T3PT6XjmeK29vf8H3DNNdc8GODMmTMPfrEXe7HXAnjxF3/x136xF3ux1+YFuO+++24F+K3f+q3vBviHf/iH3/mHf/iH3+aqZ3mxF3ux1/7wD//w77rmmmseDPAP//APv/2Zn/mZr8MLcPbs2Wd81md91ut8zud8zm9dc801D37Hd3zHz/rRH/3Rz+Ff8I7v+I6fxTP96I/+6OfwQvzoj/7o53DVVVddddVVV72oqFx11VVXXXXVVf9qf//3f//bAC/2Yi/22gC/9Vu/9d28AC/2Yi/22tdcc82DeaYP//AP/67P+qzPep377rvvVv4T3Hfffbd+/dd//fv86I/+6Oe89mu/9nu90zu902dfc801D36nd3qnz36d13md9/6Hf/iH3/6t3/qt7/mHf/iH3+aqZ7nvvvtuve+++279h3/4h98B+NEf/dHP4QGuueaaB/NMZ86cedA111zzEIAzZ8486JprrnkwwDXXXPNggDNnzjz4mmuueTDANddc82CAa6655sEv9mIvxovivvvuu1WS7rvvvqcD3HfffbcC3HfffbeePXv2GQD33XffrQBnz5699b777ruVZ/K2TvlYnOGZ4o7pH3hh1l7q3vZU/hNcc801D+YBzpw582Ce6Zprrnkwz3TmzJkH8VyuueaaBwMCfM011zyYZ7rmmmseYtsA11xzzYN5Ed133323nj179ta///u//22Af/iHf/idf/iHf/htrnqBrrnmmge/4zu+42e9zuu8znsD3Hfffbd+/dd//fv8wz/8w2/zL7jvvvtu/fqv//r3+dzP/dzfep3XeZ33ftzjHvc7f//3f//bvADv+I7v+Fmv8zqv894804u92Iu91m/91m99Ny/Ab/3Wb303V1111VVXXXXVi4rKVVddddVVV131b/L3f//3v/1iL/Zirw3wW7/1W9/DC/DhH/7h3wXwIz/yI5/94i/+4q/9Yi/2Yq/9OZ/zOb/1IR/yIQ/hP9F9991364/+6I9+zm/91m9994u/+Iu/zuu8zuu814u92Iu99jXXXPPer/M6r/Pe9913362/9Vu/9d2//du//T333XffrVz1Qt1333238kz33Xffrf/wD//wO7wIrrnmmgcDnDlz5sHXXHPNgwGfOXPmwddcc82DAa655poHA5w5c+bB11xzzYMBrrnmmgcDnDlz5kEAL/ZiL8a/5L777rsVgFC5t1ys93IegPMvf8ebn92+9xTAfffddyvP9BI8EgDt59mbXm3xTjzAmTNnHsQDXHPNNQ8BDHDNNdc8mCsE+MyZMw/mma655poH89/ovvvuu/Xs2bO3Avz93//9bwP8wz/8w+/8wz/8w29z1b/KO77jO37WO73TO302z/QjP/Ijn/2jP/qjn8O/wj/8wz/89o/8yI989ju90zt99od/+Id/9wd/8Ac/mOfjxV7sxV77nd7pnT4b4Ou//uvf+8M//MO/+8Ve7MVemxfgt37rt777vvvuu5WrrrrqqquuuupFReWqq6666qqrrvo3OXv27DN4pn/4h3/4bZ6PD//wD/+ua6655sH/8A//8Ns/+qM/+jm//du//T2f8zmf81vXXHPNgz/8wz/8u77+67/+ffhPdvbs2Wf81m/91nf/1m/91ndfc801D37t137t93qd13md977mmmse/E7v9E6f/Tqv8zrv/Q//8A+//Q//8A+/81u/9VvfzVX/oe67775bAe67775b/+Ef/oEXxTXXXPNg277mmmseAnDNNdc8GODMmTMPuuaaax4McM011zwY4MyZMw++5pprHnzNNdc8mGe6hjO8BM/0Bnwgb8AH8ly+JD4OAK7hFj6c7+I/wX333XcrD3D27Nlbeab77rvvVp7pvvvuu5Xncvbs2WcABnTffffdyjPdd999T5ckgPvuu+9WrvoPdc011zz4cz7nc37rmmuueTDAP/zDP/z2Z37mZ74O/0a//du//T2v8zqv897XXHPNg9/xHd/xs370R3/0c3iAF3uxF3vtz/3cz/0tgK//+q9/n9/6rd/6ntd5ndd57xd7sRd77Rd7sRd77X/4h3/4bZ7pdV7ndd6Lq6666qqrrrrq34LKVVddddVVV131b/JiL/Zir8UzvdiLvdhr/8M//MNv8wAv9mIv9tqv8zqv894AP/IjP/I5APfdd9+tn/VZn/U63/RN3/T013md13nvs2fPPuNHfuRHPpv/Ivfdd9+tP/qjP/o5v/Vbv/XdL/7iL/46L/ZiL/Zar/M6r/Pe11xzzXu/zuu8znu/4zu+42f91m/91nf/wz/8w+/8wz/8w29z1X+L++6771aAs2fPPgPgH/7hH/iXXHPNNQ8GOPUK17/V+N6bX32tTgFw3W3H/+7624//PThOP/q6V32J04+5GeBv/SQA4p72lLNPuOf3eYD77rvvVh7g7NmztwICuO+++27lCgM6e/bsrTzTfffddytX/a90zTXXPPi1X/u13+ud3umdPhvgvvvuu/Xrv/7r3+cf/uEffpt/h/vuu+/Wr//6r3+fz/3cz/2t13md13nvf/iHf/idf/iHf/htgBd7sRd77c/93M/9LYAf+ZEf+ezf+q3f+m6Av//7v//tF3uxF3vt13md13mvf/iHf/htgBd7sRd77Rd7sRd7ba666qqrrrrqqn8L9KAHPYirrrrqqquuuupF847v+I6f9U7v9E6f/SM/8iOf/Tqv8zrvfc011zwY4B/+4R9++zM/8zNfhwf43M/93N96sRd7sdf+kR/5kc/+0R/90c/hAV7sxV7stT/3cz/3twDuu+++Wz/rsz7rde67775b+W9wzTXXPPi1X/u13+vFX/zFX/vFXuzFXptnuu+++2790R/90c/5rd/6re/mqv81fKY8aP31J57ioALoUt6ru9tTEOFT5aZfuObbbgZ40/wgAPov23+b8qfrn+aq/3euueaaB7/2a7/2e73u677u+5w5c+ZB9913363XXHPNg3/kR37ks3/0R3/0c/gP9OEf/uHf9Tqv8zrvfd999936IR/yIQ+55pprHvxN3/RNTwf4h3/4h9/+zM/8zNfhma655poHf9M3fdPT77vvvls/5EM+5CEAH/7hH/5dr/M6r/PeAL/1W7/13V//9V//Plx11VVXXXXVVS8qyvHjx7nqqquuuuqqq140L/ZiL/baL/7iL/7aknjIQx7y0jzAn/3Zn/3M4eHhLsDrvM7rvNebv/mbf/R9991365d+6Ze+Dc/l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//Vf/z48wDXXXPPgb/qmb3o6wI/8yI989o/+6I9+Dv9Brrnmmge/9mu/9nu90zu902cDnD179hlf93Vf997/8A//8Nv8H3LNNdc8+MyZMw+65pprHvJiL/Zir/ViL/Zir33NNdc8mOdy33333foP//APv/MP//APv33ffffd+g//8A+/zVWXLX/stAF+Mb4FgDfND0Jn2zPmH3rxwVz1H+Kaa6558Iu92Iu99pkzZx704i/+4q/9Yi/2Yq/NC3DffffdCvBbv/Vb33327Nln/NZv/dZ387/IO77jO37WO73TO302wH333Xfr13/917/PP/zDP/w2/0bv+I7v+Fnv9E7v9Nk804/8yI989o/+6I9+DsCLvdiLvdbnfu7n/jbP9CEf8iEPue+++27lqquuuuqqq656UVG56qqrrrrqqqv+3V7ndV7nvQH+4R/+4Xd4Lvfdd9+tn/mZn/k6n/u5n/tb7/RO7/TZZ8+efcZv/dZvfTf/Ae67775bf/RHf/Rzfvu3f/t7PudzPue3rrnmmgd/+Id/+Hf91m/91nf/6I/+6Ofwf8R9991363333XfrP/zDP/zOb/3Wb303wDXXXPPgF3uxF3utM2fOPPjFX/zFX/vFXuzFXvuaa6558DXXXPPg13md13kvnum+++679R/+4R9+5x/+4R9++7777rv1H/7hH36b/2d8Jh7M8+Ez5UFc9a92zTXXPPjFXuzFXvvMmTMPevEXf/HXPnPmzIOvueaaB/MC3Hfffbf+wz/8w2/fd999t/7DP/zD7/zDP/zDb/O/1Iu92Iu99od/+Id/1zXXXPNggB/5kR/57B/90R/9HP6d/uEf/uF3eKZ/+Id/+O0f/dEf/Ryej3/4h3/47fvuu+9Wrrrqqquuuuqqfw0qV1111VVXXXXVv9lv/dZvfffrvM7rvDfP9A//8A+/zfPxD//wD7/9Iz/yI5/9Tu/0Tp/9ju/4jp9133333foP//APv81/kPvuu+/Wz/qsz3qd137t136vd3qnd/rsd3qnd/rs13md13nvr//6r3+ff/iHf/ht/g+67777br3vvvtuBfjRH/3RzwG45pprHvxiL/Zir/ViL/Zir33NNdc8+MVe7MVe+5prrnnwNddc8+DXeZ3XeS+A++6779azZ8/eet999z3jH/7hH377vvvuu/Uf/uEffpv/w3Q2b60/evTZ0ztufDYPUH/s6HO46gW65pprHnzmzJkHv9iLvdhrXXPNNQ+55pprHvRiL/Zir80LcN999936D//wD79933333foP//APv3P27Nlb77vvvlv5P+Caa6558Du+4zt+9uu8zuu8F8B9991369d//de/zz/8wz/8Nv8B3umd3umzeKYf+ZEf+RxegN/6rd/6Hq666qqrrrrqqn8tKlddddVVV1111b/ZfffddyvP9A//8A+/fd99993KC/CjP/qjnwPwTu/0Tp/94R/+4d/1WZ/1Wa9z33333cp/kPvuu+/WH/3RH/2c3/7t3/6ez/mcz/mta6655sEf/uEf/l3/8A//8Du/9Vu/9d3/8A//8Nv8H3fffffdet999936W7/1W98DcM011zwY4MVe7MVe68Ve7MVe+5prrnnwi73Yi732Nddc8+AXe7EX43Ve53XeC+C+++679ezZs7f+wz/8w+/8/d///W//wz/8w2/zf0z3Y0efE2fbM/gIvgug/4b99ym/vf5uruKaa6558JkzZx78Yi/2Yq8F8OIv/uKv82Iv9mKvxQtw33333Xr27Nlb//7v//63z549+4z77rvv1n/4h3/4bf6Pesd3fMfPeqd3eqfP5pl+5Ed+5LN/9Ed/9HP4D/K5n/u5v/ViL/Zir80zvc7rvM57/cM//MNv83z8wz/8w29z1VVXXXXVVVf9a1G56qqrrrrqqqv+zc6ePfuMv//7v//tF3/xF3/t++6771b+Bb/927/9PS/+4i/+2i/2Yi/22h/+4R/+XZ/5mZ/5OvwHu++++279rM/6rNd57dd+7fd6p3d6p8++5pprHvw6r/M673Xffffd+qM/+qOf81u/9Vvfzf8T9913360A9913362/9Vu/9T0A11xzzYPPnDnz4GuuueZBL/ZiL/bar/M6r/Pe11xzzYOvueaaB7/Yi73Ya7/jO77jZwHcd999t549e/ZWQPfdd9/TAe67775bz549+wyA++6771aAs2fP3nrffffdyv8C5bfX381H8F0A5bfX383/M9dcc82Dz5w58+AXe7EXey2AF3/xF3/tF3uxF3ttXoD77rvv1rNnz97693//978N8A//8A+/8w//8A+/zf8T11xzzYM//MM//Lte7MVe7LUB/uEf/uG3v/7rv/597rvvvlv5D/K5n/u5v/ViL/Zir33ffffd+vVf//Xv87mf+7m/9WIv9mKvzQNcc801Dwb4h3/4h9++7777buWqq6666qqrrvrXonLVVVddddVVV/27XHPNNQ8GeLEXe7HX5l9w33333fr1X//17/M5n/M5v/ViL/Zir/3hH/7h3/X1X//178N/sPvuu+/WH/3RH/2c3/7t3/6e137t136vd3qnd/rsa6655sEf/uEf/l3v+I7v+Fn/8A//8Du/9Vu/9d3/8A//8Nv8P3Pffffdet999936D//wD/zWb/3W93z913/9+1xzzTUPfrEXe7HXfrEXe7HXuuaaax78Yi/2Yq99zTXXPPiaa655MMCLvdiLvRb/grNnzz7Dts+ePXsrwH333XcroPvuu+/pZ8+efQbAfffdd+vZs2dvBbjvvvtu5ar/FNdcc82DAV77tV/7vQBe/MVf/LVf7MVe7LV5Ae67775bz549e+vf//3f/zbAP/zDP/z2P/zDP/wO/4+94zu+42e90zu902cD3Hfffbd+/dd//fv8wz/8w2/zH+gd3/EdP+vFXuzFXhvg67/+69/nH/7hH3777//+73/7xV/8xV/7xV7sxV77H/7hH34b4B3f8R0/m6uuuuqqq6666t+DylVXXXXVVVdd9W/2Oq/zOu91zTXXPBjgmmuuefCLvdiLvfY//MM//DYvxH333XfrZ33WZ73ON33TNz39dV7ndd77vvvuu/VHf/RHP4f/BPfdd9+tP/qjP/o5v/3bv/09L/ZiL/bar/M6r/NeL/ZiL/ba11xzzYNf53Ve573uu+++W3/0R3/0c37rt37ru/l/7L777rv1vvvu++7f+q3f+m6e6ZprrnnwmTNnHgz4mmuueQjAmTNnHnTNNdc8GOCaa6558JkzZx4McM011zz4zJkzDwK45pprHgzwYi/2YvxL7rvvvlsBzp49+wzA9913360A9913361nz559BsB9991369mzZ28FuO+++27l/6hrrrnmwTzAmTNnHswzXXPNNQ/mmc6cOfMgHuCaa655MCDA11xzzYNf7MVe7LV5Ae67775bAX7rt37ruwH+4R/+4Xf+4R/+4be56lle7MVe7LU//MM//LuuueaaBwP8yI/8yGf/6I/+6OfwH+zFXuzFXvud3umdPhvgMz/zM1/nH/7hH34b4B/+4R9++8Vf/MVf+3Ve53Xe6x/+4R9++8Ve7MVe+5prrnkwV1111VVXXXXVvweVq6666qqrrrrq3+zFXuzFXpsHeJ3XeZ33+od/+Iff5l9w33333fr1X//17/PhH/7h3/U6r/M67/0P//APv/MP//APv81/kvvuu+/W++6777t/67d+67uvueaaB7/2a7/2e73TO73TZ19zzTUP/vAP//Dvesd3fMfP+u3f/u3v+fu///vf/od/+Iff5iruu+++W++7775bAf7hH/7hd/gXnDlz5kGSdObMmQcDXHPNNQ8GfObMmQdfc801Dwa45pprHnzmzJkHA1xzzTUPvuaaax4McM011zwY4MVe7MX4l9x33323Apw9e/bW++6771ZAgP/hH/7hdwDuu+++WwHOnj1763333XcrD/CLv/iLv71cLgH4xV/8xd9+0zd909fmX3DNNdc8mAc4c+bMg3mma6655sE805kzZx7EA1xzzTUP5gpdc801D+KZzpw582BJsu1rrrnmwfwnue+++279h3/4h9++7777bv2Hf/iH3/mHf/iH3+aqF+iaa6558Gu/9mu/1zu90zt9NsB9991369d//de/zz/8wz/8Nv/BXuzFXuy1P/dzP/e3AH7kR37ks//hH/7ht3mmf/iHf/htgBd7sRd7bYDXeZ3XeS+uuuqqq6666qp/L/SgBz2Iq6666qqrrrrqX+fDP/zDv+t1Xud13vu+++67FeC3fuu3vvud3umdPvu+++679UM+5EMewovoHd/xHT/rdV7ndd4b4Ld+67e++0d/9Ec/h/8i11xzzYNf7MVe7LVf53Ve571e7MVe7LV5pvvuu+/WH/3RH/2c3/qt3/purvpPdc011zwY4MyZMw+65pprHsIzvdiLvdhrAVxzzTUPBjhz5syDr7nmmgfzb3RwcHDHyZMnbzp//vy4vb3dAezv74833HBD9+QnP/mPz58/vzpz5syDAa655poH89/gvvvuu5UHOHv27K0803333Xcrz3TffffdygOcPXv2GYAB3XfffbeePXv21vvuu+9WrnqRveM7vuNnvdM7vdNn80w/8iM/8tk/+qM/+jn8J7jmmmse/E3f9E1PB/iHf/iH3/7Mz/zM1+G5fO7nfu5vvdiLvdhrf+ZnfubrfPiHf/h3XXPNNQ8G+Id/+Iff/szP/MzX4aqrrrrqqquu+tdCD3rQg7jqqquuuuqqq/513vEd3/Gz3umd3umzeabP/MzPfJ13eqd3+qwXe7EXe+3P/MzPfJ1/+Id/+G1eBGfOnHnQ67zO67z3O73TO302wD/8wz/89td//de/z3333Xcr/4WuueaaB7/2a7/2e73TO73TZ/NM9913362//du//T1///d//9v/8A//8Ntc9T/CNddc82CAM2fOPPiaa655MGBAL/ZiL/ZaANdcc82DAc6cOfPga6655sH8O91333238gBnz569lWe67777buWZ7rvvvlt5gLNnzz6DK3zfffc9g2c6e/bsrbYtSffdd9+tXPXf4pprrnnwa7/2a7/XO73TO302z/QP//APv/31X//173Pffffdyn+Sz/3cz/2tF3uxF3vtf/iHf/jtz/zMz3wdno93fMd3/Kx3eqd3+uz77rvv1muuuebB9913363XXHPNg//hH/7htz/zMz/zdbjqqquuuuqqq/610IMe9CCuuuqqq6666qp/ndd5ndd57w//8A//Lp7pMz/zM18H4MM//MO/C+CzPuuzXue+++67lRfR67zO67z3h3/4h38XwNmzZ5/xm7/5m9/1oz/6o5/Df7FrrrnmwS/2Yi/22q/zOq/zXi/2Yi/22jzTfffdd+uP/uiPfs5v/dZvfTdX/a9y6623+uabb26ttfLEJz6RYRgA6Pue137t16aUkr/xG78Rr/d6r/cQgPvuu+9Wrvo/6Zprrnnwa7/2a7/XO73TO302D3Dffffd+lu/9Vvf/aM/+qOfw3+iz/3cz/2tF3uxF3vt++6779YP+ZAPeQgvwIu92Iu99ud+7uf+Fs/0W7/1W9/9Oq/zOu/9D//wD7/9mZ/5ma/DVVddddVVV131r0Xlqquuuuqqq676V/uHf/iH3+a5nD179tazZ8/e+mIv9mKv/bmf+7m//cEf/MEP5kX0W7/1W9/9D//wD7/9ju/4jp/1Oq/zOu/9Tu/0Tp8N8KM/+qOfw3+h++6779b77rvvu3/rt37ru6+55poHv/Zrv/Z7vdM7vdNnX3PNNQ/+8A//8O96x3d8x8/67d/+7e/5rd/6re++7777buWq/xXuuOOOUmsdt7e3Ox7gb//2b8dpmrrt7W3uu+++W7nq/5xrrrnmwa/92q/9Xq/zOq/z3tdcc82Deab77rvv1t/6rd/67t/+7d/+nvvuu+9W/pN97ud+7m+92Iu92Gvfd999t37WZ33W6/BCnD179lYe4B/+4R9+53Ve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d3qnd/psgPvuu+/W3/qt3/ruH/3RH/0c/o0+93M/97de7MVe7LX/4R/+4bc/8zM/83UArrnmmgd/0zd909N5prd7u7cTV1111VVXXXXVvwWVq6666qqrrrrq3+2+++679Zprrnnwi73Yi73WP/zDP/w2z8dv/dZvffeLv/iLv/aLvdiLvfaHf/iHf9dnfuZnvg7/Tvfdd9+tn/VZn/U6r/3ar/1e7/RO7/TZ7/iO7/hZr/3ar/1en/VZn/U699133638D3bffffdet999936D//wD7/9oz/6o58DcM011zz4xV7sxV77xV7sxV7rmmuuefCLvdiLvTbANddc896v8zqv894A9913363/8A//8Nv/8A//8Dv33Xffrf/wD//w21x11f9w11xzzYPPnDnz4Bd7sRd7LYAXf/EXf50Xe7EXey2e6b777rv1t37rt777H/7hH37nH/7hH36b/6GuueaaB3/4h3/4d73Yi73YawP8wz/8w29/5md+5uvw7/C5n/u5v/ViL/Zir/0P//APv/2Zn/mZr8Pz8Vu/9VvfzVVXXXXVVVdd9W+FHvSgB3HVVVddddVVV/3bfO7nfu5vvdiLvdhr/8iP/Mhnv9M7vdNn33fffbd+yId8yEN4Aa655poHf87nfM5vXXPNNQ/+kR/5kc/+0R/90c/hP8g111zz4M/5nM/5rWuuuebB9913362/9Vu/9d0/+qM/+jn8L3bNNdc8+MyZMw++5pprHvw6r/M67/ViL/Zir81zue+++24F+Id/+Iff/od/+Iffue+++279h3/4h9/mqufrJ37iJwzwdm/3duKq/xTXXHPNg1/sxV7stc+cOfOgF3/xF3/tF3uxF3ttno/77rvvVoDf+q3f+u4f/dEf/Rz+h3vHd3zHz3qnd3qnzwa47777bv36r//69/mHf/iH3+bf4XM/93N/68Ve7MVe+7777rv1Qz7kQx7CA1xzzTUP/qZv+qanA3zmZ37m6/zDP/zDb3PVVVddddVVV/1bULnqqquuuuqqq/7d/uEf/uF3/uEf/uG3X+zFXuy1X+zFXuy1/+Ef/uG3eT7uu+++Wz/rsz7rdb7pm77p6e/0Tu/02WfPnn3Gb/3Wb303/wHuu+++Wz/zMz/ztV/ndV7nvd/pnd7ps9/pnd7ps1/8xV/8tb/+67/+fe67775b+V/ovvvuu/W+++679R/+4R/4rd/6re8GuOaaax78Yi/2Yq/9Yi/2Yq91zTXXPPjFXuzFXhvgmmuuee/XeZ3XeW+A++6779azZ8/e+vd///e//Q//8A+/8w//8A+/zVVX/Qe75pprHnzmzJkHv9iLvdhrAbz4i7/4a7/Yi73Ya/N83HfffbcC/NZv/dZ3A/zDP/zDb//DP/zD7/C/wDXXXPPgD//wD/+uF3uxF3ttgN/6rd/67q//+q9/H/6d3vEd3/GzXuzFXuy1Ab7+67/+fXguL/ZiL/baPNM//MM//DZXXXXVVVddddW/FZWrrrrqqquuuuo/xN///d//9ou92Iu99uu8zuu81z/8wz/8Ni/Afffdd+vXf/3Xv8+Hf/iHf9c7vdM7ffZ999136z/8wz/8Nv8Bzp49+4wf/dEf/RyAd3qnd/rsF3uxF3vtz/3cz/3t3/zN3/yuH/3RH/0c/g+47777br3vvvu++7d+67e+G+Caa6558JkzZx58zTXXPPjFXuzFXut1Xud13vuaa6558DXXXPPgF3uxF3ttnum+++679R/+4R9++x/+4R9+57777rv1H/7hH36bq656EV1zzTUPfrEXe7HXPnPmzINe/MVf/LVf7MVe7LV5Ae67775bz549e+vf//3f//Y//MM//M4//MM//Db/S73jO77jZ73TO73TZwPcd999t37913/9+/zDP/zDb/Pv9GIv9mKv/U7v9E6fDfCZn/mZr/MP//APv81zebEXe7HXAjh79uwzuOqqq6666qqr/j3Qgx70IK666qqrrrrqqn+bz/3cz/2tF3uxF3vtz/zMz3yds2fP3vpN3/RNT7/vvvtu/ZAP+ZCH8C94x3d8x896p3d6p8++7777bv2QD/mQh/Af7Jprrnnwh3/4h3/Xi73Yi702wH333Xfrj/7oj37Ob/3Wb303/8ddc801D36xF3ux136xF3ux17rmmmse/GIv9mKvzXM5e/bsM+67776n33fffbf+1m/91vf8wz/8w2/z/8BP/MRPGODt3u7txFXP45prrnnwmTNnHvxiL/Zir3XNNdc8+Jprrnnwi73Yi702z8d99913K8Bv/dZvfTfAP/zDP/zOP/zDP/w2/wdcc801D/7wD//w73qxF3ux1wb4kR/5kc/+0R/90c/hP8A111zz4G/6pm96OsCP/MiPfPaP/uiPfg7Px0/8xE8Y4OzZs8/44A/+4Adz1VVXXXXVVVf9W1G56qqrrrrqqqv+Q9x33323/sM//MNvv9iLvdhrv/iLv/hr//3f//1v80L89m//9ve82Iu92Gu/+Iu/+Gt/7ud+7m995md+5uvwH+i+++679TM/8zNf5x3f8R0/63Ve53Xe+5prrnnwh3/4h3/XO77jO37Wb//2b3/Pb/3Wb333fffddyv/B91333233nfffd/9W7/1W98NcObMmQdJ0ou92Iu99ou92Iu91jXXXPPgF3uxF3vtM2fOPOjFXuzFeJ3XeZ33Bjh79uwz/v7v//63/uEf/uF37rvvvlv/4R/+4be56v+ka6655sEAr/3ar/1eAC/+4i/+2i/2Yi/22rwA9913363/8A//8Nv33Xffrf/wD//wO//wD//w2/wf9Y7v+I6f9U7v9E6fDXDffffd+vVf//Xv8w//8A+/zX+QD//wD/8ugH/4h3/47R/90R/9HJ6P13md13lvrrrqqquuuuqq/yhUrrrqqquuuuqq/zB///d//9sv9mIv9trv+I7v+Nl///d//9q8EPfdd9+tX//1X//en/u5n/vbL/ZiL/ba7/iO7/hZP/qjP/o5/Af70R/90c/57d/+7e95sRd7sdd+ndd5nfd6sRd7sdd+x3d8x8967dd+7ff6h3/4h9/+rd/6re/5h3/4h9/m/7CzZ88+A+C+++777t/6rd/6boAzZ8486MVf/MVf58Ve7MVe65prrnnwi73Yi732mTNnHvQ6r/M67/06r/M6780znT179hm2ffbs2Vvvu+++W7lC//AP//DbAPfdd9+tAGfPnr31vvvuu5Wr/se55pprHnzmzJkHv9iLvdhrvfiLv/hrv9iLvdhr8wLcd999t549e/bWv//7v/9tgH/4h3/4nX/4h3/4bf4fuOaaax78OZ/zOb91zTXXPBjgR37kRz77R3/0Rz+H/0Cf+7mf+1sv9mIv9tr/8A//8Nuf+Zmf+Tq8AK/zOq/zXlx11VVXXXXVVf9RqFx11VVXXXXVVf9m9913360v9mIvxv1++7d/+3ve6Z3e6bOvueaaB/MiOHv27DO+/uu//n0+93M/97fe6Z3e6bMBfvRHf/Rz+A9233333Xrfffd992/91m999zXXXPPgd3zHd/ys13md13nva6655r1f53Ve573vu+++W3/7t3/7e37kR37ks/l/4uzZs8/4rd/6re/+rd/6re8GuOaaax5s2y/+4i/+Oi/2Yi/2Wtdcc82Dz5w58+BrrrnmwQDXXHPNg1/sxV6M+73O67zOe/EC3HfffbcCnD179hn33Xff0wHuu+++W8+ePfsMgPvuu+9WgLNnz95633333cpV/yGuueaaBwO89mu/9nsBvPiLv/hrv9iLvdhr8wLcd999t/7DP/zDb9933323/sM//MPv/MM//MNv8//UO77jO37WO73TO302wH333Xfr13/917/PP/zDP/w2/4E+/MM//Lte7MVe7LXvu+++W7/+67/+fXghXuzFXuy1ueqqq6666qqr/qNQueqqq6666qqr/s3uu+++WwFe53Ve573+4R/+4bfvu+++W//hH/7ht1/sxV7stV/ndV7nvX/rt37ru/kX/MM//MNv/8iP/Mhnv9M7vdNnv9M7vdNnS9KP/MiPfDb/Se67775bv/7rv/59fvRHf/RzXvu1X/u9Xud1Xue9r7nmmge/4zu+42e99mu/9nv9wz/8w2//1m/91vf8wz/8w2/z/8h99913K8Bv/dZvffdv/dZvfTfPdObMmQdJ0pkzZx58zTXXPBjgzJkzD7rmmmseDHDNNdc8GODMmTMPvuaaax4McM011zwY4Jprrnnwi73Yi70W/4KzZ88+w7bPnj17K8B99913K6B/+Id/+G2A++6771aAs2fP3nrffffdyv9y11xzzYN5gDNnzjyYZ7rmmmseDHDmzJkH8QDXXHPNg7lC11xzzYN4pjNnzjxYks6cOfMgXoD77rvv1rNnz97693//97999uzZZ9x33323/sM//MNvcxXXXHPNgz/3cz/3t8+cOfMggB/5kR/57B/90R/9HP6DvdiLvdhrv87rvM57A3z913/9+9x333238gK8zuu8znsD/MM//MNvv9iLvdhrc9VVV1111VVX/XuhBz3oQVx11VVXXXXVVf8211xzzYO/6Zu+6en33XffrR/yIR/yEIDXeZ3Xee8P//AP/6777rvv1s/6rM96nfvuu+9WXgTv+I7v+Fnv9E7v9NkA9913362f9Vmf9Tr33Xffrfwnu+aaax78Yi/2Yq/9Oq/zOu/1Yi/2Yq/NM9133323/uiP/ujn/NZv/dZ3c9WL7Jprrnkwz3TmzJkHXXPNNQ8BOHPmzIOuueaaBwNcc801DwY4c+bMg6+55poH829w33333Qpw9uzZZ9x3331PB7jvvvtuPXv27DMA7rvvvlsBzp49e+t99913K8/0Ez/xEwZ4u7d7O/ECXHPNNQ/mmc6cOfNgnumaa655MM905syZB/EA11xzzYMBXXPNNQ/iAa655pqH2PY111zzYP6T3XfffbcC/NZv/dZ3A/zDP/zD7/zDP/zDb3PV87jmmmse/Nqv/drv9U7v9E6fDXDffffd+vVf//Xv8w//8A+/zX+wF3uxF3vtz/3cz/0tgM/8zM98nX/4h3/4bV6Iz/3cz/2tF3uxF3vtH/mRH/nsd3qnd/rss2fPPuODP/iDH8xVV1111VVXXfVvhR70oAdx1VVXXXXVVVf9233O53zOb734i7/4a3/mZ37m6/zDP/zDbwN8+Id/+He9zuu8znvfd999t37Ih3zIQ3gRXXPNNQ/+nM/5nN+65pprHnzffffd+lu/9Vvf/aM/+qOfw3+Ra6655sGv/dqv/V7v9E7v9Nk803333Xfrb/3Wb333b//2b3/PfffddytX/Yc7c+bMgyTpzJkzDwa45pprHgz4xV7sxV4b4JprrnkwwJkzZx58zTXXPJh/g7Nnzz7Dtq+55poHA/zDP/zDb19zzTUPse1rrrnmwfwXuu+++27lAc6ePXsrz3TffffdCnDffffdygOcPXv2GVzh++677xk809mzZ2+17bNnzz6Dq16oa6655sGv/dqv/V6v8zqv897XXHPNgwHuu+++W3/rt37ru3/0R3/0c/hPcM011zz4m77pm54O8CM/8iOf/aM/+qOfw7/gJ37iJwzwIR/yIQ/5pm/6pqefPXv2GR/8wR/8YK666qqrrrrqqn8r9KAHPYirrrrqqquuuurf7h3f8R0/653e6Z0++7d+67e+++u//uvfB+DMmTMP+tzP/dzfvuaaax78W7/1W9/99V//9e/Di+jMmTMPep3XeZ33fqd3eqfPBviRH/mRz/7RH/3Rz+G/0DXXXPPgF3uxF3vt13md13mvF3uxF3ttgPvuu+/Wf/iHf/jt3/qt3/qef/iHf/htrvpvdc011zwY4MyZMw+65pprHgJw5syZB11zzTUPBrjmmmseDHDmzJkHX3PNNQ/mX+G+++67lWc6e/bsrTzTfffddyvPdN99993KA5w9e/YZgO+7775n8AD33Xff0yXpvvvuu5Wr/stdc801D37t137t93rxF3/x136xF3ux1+aZ7rvvvlt/67d+67t/+7d/+3vuu+++W/lP8rmf+7m/9WIv9mKv/Q//8A+//Zmf+Zmvw7/gwz/8w7/rdV7ndd77t37rt777R3/0Rz/nm77pm55+9uzZZ3zwB3/wg7nqqquuuuqqq/6t0IMe9CCuuuqqq6666qp/uzNnzjzom7/5m2+97777bv2QD/mQh/BM11xzzYO/6Zu+6ekAP/IjP/LZP/qjP/o5/Cu84zu+42e90zu902cDnD179hmf+Zmf+dr33XffrfwXu+aaax78ju/4jp/1Oq/zOu/NM9133323/tZv/dZ3/+iP/ujncNX/CmfOnHmQJH3TN33T0wE+8zM/83Xuu+++p0vSfffddytX/Z9yzTXXPPi1X/u13+ud3umdPptnuu+++279rd/6re/+h3/4h9/5h3/4h9/mP9nnfu7n/taLvdiLvfZ9991364d8yIc8hBfBN33TNz39mmuuefBnfuZnvs7Zs2dv/aZv+qannz179hkf/MEf/GCuuuqqq6666qp/K8rx48e56qqrrrrqqqv+7Y6Oji69+Iu/+Gs/5CEPeel/+Id/+J2zZ8/eCnB4eLh79uzZZ7ziK77iW19zzTUPfsYznvE399133628iP7hH/7hd377t3/7e17xFV/xra+55poHv+IrvuJbb25uHv+Hf/iH3+G/0OHh4e6f/umf/sxv//Zvf8/h4eHuNddc8+BrrrnmwS/+4i/+2q/zOq/z3pubm8cBnT179lau+h/r6Ojo0uHh4e47vdM7fTbA13/917/P0dHRpcPDw12u+j/hmmuuefCbvdmbfdSHf/iHf/c7vdM7ffaLv/iLvzbAfffdd+vP//zPf/WXfumXvs0//MM//M7Zs2dv5T/ZO77jO37W67zO67w3wJd8yZe8zdmzZ2/lX/A6r/M67/06r/M67w3w9V//9e+zubl5/M3f/M0/+ujo6NLP//zPfzVXXXXVVVddddW/FZWrrrrqqquuuurf7e///u9/+8Ve7MVe+53e6Z0+6zM/8zN/m2f6rd/6re8+c+bMg97pnd7psz/8wz/8uz/4gz/4wfwr3Hfffbd+1md91uu89mu/9nu90zu902e/0zu902e/zuu8znt/1md91uvcd999t/Jf6L777rv1R3/0Rz/nt37rt777xV/8xV/ndV7ndd7rxV7sxV77nd7pnT4b4B/+4R9++7d+67e+57d+67e+m6uuuuq/xDXXXPPg137t136vF3/xF3+dF3uxF3stnum+++679bd+67e++7d/+7e/57777ruV/0Lv+I7v+Fnv9E7v9NkAn/mZn/k6//AP//DbvAhe7MVe7LUAfuu3fuu7ueqqq6666qqr/iOhBz3oQVx11VVXXXXVVf8+11xzzYO/6Zu+6en33XffrR/yIR/yEB7gmmuuefCHf/iHf9eLvdiLvfZv/dZvfffXf/3Xvw//Bi/2Yi/22h/+4R/+Xddcc82D77vvvlt/+7d/+3t+5Ed+5LP5b3TNNdc8+LVf+7Xf653e6Z0+m2e67777bv2t3/qt7/7t3/7t77nvvvtu5ar/UX7iJ37CAG/3dm8nrvpf65prrnnwa7/2a7/XO73TO302D/AjP/Ijn/0P//APv/MP//APv81/sRd7sRd77Q//8A//rmuuuebBAJ/5mZ/5Ov/wD//w27yIvumbvunp11xzzYM/5EM+5CH33Xffrddcc82Dv+mbvunp//AP//A7n/mZn/naXHXVVVddddVV/1aU48ePc9VVV1111VVX/fscHh7uvviLv/hrP+QhD3npf/iHf/ids2fP3sozHR4e7v7DP/zD77z5m7/5Rz/kIQ95aYB/+Id/+B3+lc6ePXvrn/3Zn/3M5ubm8Rd/8Rd/7Rd7sRd7bYB/+Id/+B3+mxweHu7+wz/8w+/81m/91ncfHh7uSuIhD3nIS7/4i7/4a7/SK73S2zz4wQ9+qcPDw0tnz569lav+R3ind3qnzwb40R/90c/hqv9Vrrnmmge/2Zu92Ud9xEd8xPe84zu+42e9+Iu/+GsD3Hfffbf+/M///Fd/1md91uv8wz/8w++cPXv2Vv6LveM7vuNnfcRHfMR3b25uHr/vvvtu/ZIv+ZK3+Yd/+Iff5kX0uZ/7ub/1kIc85KV/5Ed+5LP/9E//9GcAXvEVX/GtX/EVX/Gt/+Ef/uF3/vRP//Snueqqq6666qqr/q0ox48f56qrrrrqqquu+g+hV3zFV3zra6655sG/9Vu/9T08wOHh4e7Zs2ef8Yqv+Ipvfc011zz41ltv/ZuzZ8/eyr/S4eHh7p/+6Z/+DMCLv/iLv/aLv/iLv/brvM7rvPef/dmf/czh4eEu/02Ojo4u/cM//MPv/NZv/db3/MM//MPvALzYi73Yaz/kIQ956dd5ndd579d5ndd5783NzeP/8A//8Dtc9d/qnd7pnT4b4Ed/9Ec/h6v+V3jHd3zHz3qnd3qnz36f93mfr37xF3/x197c3Dx+33333frzP//zX/0N3/AN7/OjP/qjn/MP//APv8N/g2uuuebBX/7lX/5Xr/RKr/TWAD/yIz/y2V/6pV/6NmfPnr2VF9E7vuM7ftbrvM7rvDfAj/7oj37O2bNnbwV43/d936+65pprHvwLv/ALX3Prrbf+NVddddVVV1111b8VetCDHsRVV1111VVXXfXvd8011zz4m77pm55+33333fohH/IhD+H5eMd3fMfPeqd3eqfPvu+++279rM/6rNe57777buXf6MyZMw/63M/93N++5pprHnzffffd+lu/9Vvf/aM/+qOfw/8QZ86cedDrvM7rvPfrvM7rvPc111zzYICzZ88+4+///u9/6x/+4R9+57777rv1H/7hH36bq/5L/cRP/IQB3u7t3k5c9T/WNddc8+DXfu3Xfq93eqd3+mwe4Ed+5Ec+++zZs7f+1m/91vfw3+wd3/EdP+ud3umdPhvgvvvuu/Xrv/7r3+cf/uEffpt/hRd7sRd77c/93M/9LYDP/MzPfJ1/+Id/+G2e6Sd+4icM8HZv93biqquuuuqqq67690APetCDuOqqq6666qqr/mN87ud+7m+92Iu92Gt/1md91uv8/d///W/zXK655poHf/iHf/h3vdiLvdhr33fffbd+yId8yEP4d7jmmmse/Nqv/drv9U7v9E6fDfCjP/qjn/MjP/Ijn83/INdcc82DX+zFXuy1X+d1Xue9XuzFXuy1eYD77rvv1rNnzz7jvvvue/pv/dZvfc8//MM//DZX/af6iZ/4CQO83du9nbjqf5Rrrrnmwa/92q/9Xq/zOq/z3tdcc82Deab77rvv1t/6rd/67h/90R/9HP4HuOaaax784R/+4d/1Yi/2Yq8N8CM/8iOf/aM/+qOfw7/SNddc8+Bv+qZvejrAj/zIj3z2j/7oj34Oz/Q6r/M67/3hH/7h3/Vbv/Vb3/31X//178NVV1111VVXXfXvgR70oAdx1VVXXXXVVVf9x3id13md9/7wD//w7/qHf/iH3/nMz/zM1+b5uOaaax78OZ/zOb91zTXXPPhHf/RHP+dHfuRHPpt/p3d8x3f8rHd6p3f6bID77rvv1q//+q9/n3/4h3/4bf6HOXPmzINe/MVf/HVe7MVe7LWuueaaB7/Yi73Ya/Nc7rvvvlv/4R/+4Xf+4R/+4bfvu+++W//hH/7ht7nqP8xP/MRPGODt3u7txFX/I7zjO77jZ11zzTUPfp3XeZ335pnuu+++W3/rt37ru3/rt37ru8+ePfsM/od4x3d8x896p3d6p88GuO+++279+q//+vf5h3/4h9/m3+BzP/dzf+vFXuzFXvsf/uEffvszP/MzX4cH+KZv+qanX3PNNQ/+zM/8zNf5h3/4h9/mqquuuuqqq67690APetCDuOqqq6666qqr/mNcc801D/6mb/qmp589e/YZH/zBH/xgXoBrrrnmwd/0Td/0dICv//qvf5/f+q3f+m7+na655poHf87nfM5vXXPNNQ++7777bv2t3/qt7/7RH/3Rz+F/sGuuuebBL/ZiL/ZaZ86cefCLv/iLv/aLvdiLvTbP5b777rv1H/7hH3777Nmzz/j7v//73/6Hf/iH3+aqf7Of+ImfMMDbvd3biav+21xzzTUPfu3Xfu33eqd3eqfP5gF+5Ed+5LPPnj37jN/6rd/6bv4Hueaaax784R/+4d/1Yi/2Yq8N8CM/8iOf/aM/+qOfw7/R537u5/7Wi73Yi732fffdd+uHfMiHPIQHeLEXe7HX/tzP/dzfAni7t3s7cdVVV1111VVX/XuhBz3oQVx11VVXXXXVVf9xPvdzP/e3XuzFXuy1v/7rv/59fuu3fuu7eQHe8R3f8bPe6Z3e6bPvu+++Wz/rsz7rde67775b+Xc6c+bMg17ndV7nvd/pnd7pswHuu+++Wz/rsz7rde67775b+V/gmmuueTDAi73Yi73Wi73Yi73267zO67w3z+W+++67FeAf/uEffvsf/uEffucf/uEffvu+++67lateJD/xEz9hgLd7u7cTV/2XuOaaax78Yi/2Yq995syZB734i7/4a7/Yi73Ya/MA9913362/9Vu/9d0/+qM/+jn8D/SO7/iOn/VO7/ROnw1w33333fr1X//17/MP//APv82/0Tu+4zt+1ju90zt9NsBnfuZnvs4//MM//DYP8OEf/uHf9Tqv8zrv/Vu/9Vvf/fVf//Xvw1VXXXXVVVdd9e+FHvSgB3HVVVddddVVV/3HeZ3XeZ33/vAP//Dv+od/+Iff/szP/MzX4YX48A//8O96ndd5nfe+7777bv2QD/mQh/Af5Jprrnnw53zO5/zWNddc8+CzZ88+4zd/8ze/60d/9Ec/h/+Frrnmmge/2Iu92Gu/2Iu92Gtdc801D36xF3ux1+a53Hfffbf+wz/8w2//wz/8w+/cd999t/7DP/zDb3PV8/UTP/ETBni7t3s7cdV/uGuuuebBr/3ar/1eAC/+4i/+2i/2Yi/22jwf9913362/9Vu/9d2//du//T333XffrfwPdM011zz4wz/8w7/rxV7sxV4b4Ld+67e+++u//uvfh3+HF3uxF3vtz/3cz/0tgM/8zM98nX/4h3/4bZ7LN33TNz39mmuuefBnfuZnvs4//MM//DZXXXXVVVddddW/F3rQgx7EVVddddVVV131H+eaa6558Dd90zc9/b777rv1Qz7kQx7CC3HmzJkHfe7nfu5vX3PNNQ/+rd/6re/++q//+vfhP8g111zz4Nd+7dd+r3d6p3f6bIAf+ZEf+ewf/dEf/Rz+l7vmmmsefObMmQdfc801D36d13md93qxF3ux1+a53HfffbeePXv21vvuu+/W3/qt3/qef/iHf/htrrrsJ37iJwzwdm/3duKqf7NrrrnmwWfOnHnwi73Yi73WNddc8+BrrrnmwS/2Yi/22jwf9913361nz5699e///u9/+x/+4R9+5x/+4R9+m//hXud1Xue9P/zDP/y7AO67775bv/7rv/59/uEf/uG3+Xe45pprHvxN3/RNTwf4kR/5kc/+0R/90c/hubzO67zOe334h3/4dwO83du9nbjqqquuuuqqq/4joAc96EFcddVVV1111VX/sT7ncz7nt178xV/8tb/+67/+fX7rt37ru3khrrnmmgd/0zd909MBfuRHfuSzf/RHf/Rz+A/0ju/4jp/1Tu/0Tp8NcN999936W7/1W9/9oz/6o5/D/yHXXHPNg1/sxV7stV/sxV7sta655poHv9iLvdhr81zuu+++W//hH/7ht//hH/7hd+67775b/+Ef/uG3+X/owz/8w78L4Ou//uvfh6teJNdcc82DX+zFXuy1z5w586AXf/EXf+0Xe7EXe21egPvuu+/Wf/iHf/jt++6779Z/+Id/+J1/+Id/+G3+F7nmmmse/OEf/uHf9WIv9mKvDfAP//APv/2Zn/mZr8N/gM/93M/9rRd7sRd77X/4h3/47c/8zM98HZ6PD//wD/+u13md13nv3/qt3/rur//6r38frrrqqquuuuqq/wjoQQ96EFddddVVV1111X+sF3uxF3utz/3cz/3tf/iHf/jtz/zMz3wd/gWv8zqv894f/uEf/l333Xffrd/wDd/wPn//93//2/wHuuaaax784R/+4d/1Yi/2Yq8NcPbs2Wf85m/+5nf99m//9vfcd999t/J/zDXXXPPgF3uxF3vtM2fOPOjFX/zFX/vFXuzFXpvncvbs2Wf8/d///W/dd999t/7DP/zD7/zDP/zDb3PV/3vXXHPNg1/7tV/7vQBe/MVf/LVf7MVe7LV5Pu67775bAX7rt37ruwH+4R/+4Xf+4R/+4bf5X+x1Xud13vvDP/zDvwvgvvvuu/Xrv/7r3+cf/uEffpv/AJ/7uZ/7Wy/2Yi/22vfdd9+tH/IhH/IQXoBv+qZvevo111zz4A/5kA95yH333XcrV1111VVXXXXVfwT0oAc9iKuuuuqqq6666j/WmTNnHvTN3/zNtwJ85md+5uv8wz/8w2/zL3jHd3zHz3qnd3qnzz579uwzPviDP/jB/Ae75pprHvxiL/Zir/06r/M67/ViL/Zirw1w33333foP//APv/1bv/Vb3/MP//APv83/UWfOnHmQJL3Yi73Ya7/Yi73Ya73O67zOe/Nc7rvvvlsl6e///u9/6x/+4R9+5x/+4R9++7777ruVq/5Puuaaax585syZB7/Yi73YawG8+Iu/+Gu/2Iu92GvzfNx33323nj179ta///u//+2zZ88+47d+67e+m/9Drrnmmgd/+Id/+He92Iu92GsD/MM//MNvf+Znfubr8B/kHd/xHT/rnd7pnT4b4DM/8zNf5x/+4R9+m+fjdV7ndd77wz/8w7/rH/7hH377Mz/zM1+Hq6666qqrrrrqPwp60IMexFVXXXXVVVdd9R/vcz/3c3/rxV7sxV77t37rt77767/+69+Hf8E111zz4A//8A//rhd7sRd77fvuu+/Wz/qsz3qd++6771b+E5w5c+ZBr/M6r/Pe7/RO7/TZPNPZs2ef8Zu/+Zvf9aM/+qOfw/8DZ86cedCLv/iLv86LvdiLvdY111zz4Bd7sRd7bZ7Lfffdd+vZs2efcd999z0d4L777rv17NmzzwC47777bgU4e/bsrffdd9+tXPU/1jXXXPPgF3uxF3vtM2fOPOjFX/zFX/vFXuzFXpsX4L777rv1H/7hH377vvvuu/Uf/uEffucf/uEffpv/w17sxV7stT/3cz/3twDuu+++W3/rt37ru3/0R3/0c/gP8mIv9mKv/bmf+7m/BfCZn/mZr/MP//APv80L8OEf/uHf9Tqv8zrv/fVf//Xv81u/9VvfzVVXXXXVVVdd9R8FPehBD+Kqq6666qqrrvqPd8011zz4m77pm54O8CM/8iOf/aM/+qOfw7/gmmuuefDnfM7n/NY111zz4Pvuu+/W3/qt3/ruH/3RH/0c/pNcc801D37t137t93qd13md977mmmseDHDffffd+lu/9Vvf/du//dvfc999993K/xPXXHPNg8+cOfOga6655iGv8zqv814v9mIv9tr33Xffrddcc82DeRGcPXv2GbZ99uzZW++7775bAe67775bz549+wyA++6771aAs2fP3nrffffdylX/Ka655poHv/Zrv/Z7Abz4i7/4a7/Yi73Ya/N83HfffbcC/NZv/dZ3A/zDP/zD7/zDP/zDb/P/xDXXXPPg137t136vd3qnd/psgH/4h3/47a//+q9/n/vuu+9W/oNcc801D/6mb/qmpwP86I/+6Of8yI/8yGfzQvzET/yEAT7kQz7kIffdd9+tXHXVVVddddVV/1HQgx70IK666qqrrrrqqv8cr/M6r/PeH/7hH/5d9913363f8A3f8D5///d//9v8C86cOfOg13md13nvd3qnd/psgB/5kR/57B/90R/9HP4TXXPNNQ9+sRd7sdd6ndd5nfd+sRd7sdcGuO+++279h3/4h9/5rd/6re/+h3/4h9/m/6FrrrnmwWfOnHnQNddc8xCAM2fOPOiaa655MMA111zz4DNnzjz4mmuueTD/Bvfdd9+tAGfPnr0V0H333fd0gH/4h3/4HYD77rvvVoCzZ8/eet99993K/3HXXHPNg3mAM2fOPBjgmmuueTDPdObMmQfxANdcc82DAa655pqHAH6xF3ux1+b5uO+++249e/bsrX//93//22fPnn3GP/zDP/z2fffddyv/D11zzTUPfu3Xfu33eqd3eqfP5pl+5Ed+5LN/9Ed/9HP4D/a5n/u5v/ViL/Zir/0P//APv/2Zn/mZr8ML8Tqv8zrv/eEf/uHf9Vu/9Vvf8/Vf//XvzVVXXXXVVVdd9R8JPehBD+Kqq6666qqrrvrP847v+I6f9U7v9E6fffbs2Wd88Ad/8IN5Eb3jO77jZ73TO73TZwOcPXv2GZ/5mZ/52vfdd9+t/Ce75pprHvyO7/iOn/U6r/M6780z3Xfffbf+1m/91nf/6I/+6Odw1fN15syZB0nSmTNnHnzNNdc8GODMmTMPuuaaax4McM011zwY4MyZMw++5pprHsy/0n333XerJN13331PB7jvvvtuBbjvvvtuPXv27DPuu+++WwHOnj1763333Xcr/wmuueaaB/MAZ86ceTDANddc82Ce6cyZMw/ima655poHAwJ8zTXXPJhnuuaaax5i29dcc82D+Q9y33333XrNNdc8+L777rv1H/7hH377vvvuu/Uf/uEffucf/uEffpuruOaaax78ju/4jp/1Oq/zOu/NM9133323ftZnfdbr3HfffbfyH+xzP/dzf+vFXuzFXvu+++679UM+5EMewr/gcz/3c3/rxV7sxV7767/+69/nt37rt76bq6666qqrrrrqPxJ60IMexFVXXXXVVVdd9Z/nmmuuefCHf/iHf9eLvdiLvfZv/dZvfffXf/3Xvw8vomuuuebBn/M5n/Nb11xzzYPvu+++W3/rt37ru3/0R3/0c/gvcM011zz4tV/7td/rdV7ndd77mmuueTDAfffdd+tv//Zvf89v/dZvffd99913K1f9m11zzTUPBjhz5syDr7nmmgcBOnPmzIOuueaaBwNcc801DwY4c+bMg6+55poH829w33333Qpw9uzZW++7775nAL7vvvtu5QGuueaaB/NM11xzzYMBAT5z5syDAa655poH81/gvvvuu5UHOHv27K0A9913360803333XcrD3D27NlnANx3331PB/QP//APv81Vz3LNNdc8+LVf+7Xf63Ve53Xe+5prrnkwz3Tffffd+vVf//Xv8w//8A+/zX+Cd3zHd/ysd3qnd/psgM/8zM98nX/4h3/4bf4FP/ETP2GAD/mQD3nIfffddytXXXXVVVddddV/JPSgBz2Iq6666qqrrrrqP9c111zz4G/6pm96OsCP/MiPfPaP/uiPfg4vomuuuebBr/3ar/1e7/RO7/TZAD/yIz/y2T/6oz/6OfwXueaaax78Yi/2Yq/9Oq/zOu/1Yi/2Yq8NcN999936D//wD7/9W7/1W9/zD//wD7/NVf/prrnmmgfb9jXXXPMQgGuuuebBAC/2Yi/2WgDXXHPNgwHOnDnz4GuuuebB/Ce47777buUBzp49eyvAfffddyvPdN99993KM509e/YZgAHdd999t/JM991339Ml6b777ruVq/7Dvc7rvM57v9iLvdhrvc7rvM5780z33Xffrb/1W7/13T/6oz/6OfwnerEXe7HX/tzP/dzfAvjMz/zM1/mHf/iH3+Zf8Dqv8zrv/eEf/uHf9Vu/9Vvf/fVf//Xvw1VXXXXVVVdd9R8NPehBD+Kqq6666qqrrvrP9zqv8zrv/eEf/uHfdd9999369V//9e/zD//wD7/Nv8I7vuM7ftY7vdM7fTbAfffdd+tnfdZnvc599913K/+Frrnmmge/4zu+42e9zuu8znvzTPfdd9+tP/qjP/o5v/Vbv/XdXPU/xjXXXPNgnunMmTMPvuaaax4E6MyZMw/iAc6ePfsMnum+++67FTCgs2fP3gpw33333cpV/+Ndc801D37t137t93qnd3qnz+YBfuRHfuSz/+Ef/uF3/uEf/uG3+U/2Yi/2Yq/9uZ/7ub8F8CM/8iOf/aM/+qOfw4vgcz/3c3/rxV7sxV7767/+69/nt37rt76bq6666qqrrrrqPxp60IMexFVXXXXVVVdd9V/jHd/xHT/rnd7pnT77vvvuu/VDPuRDHsK/0jXXXPPgz/mcz/mta6655sFnz559xm/+5m9+14/+6I9+Dv/Frrnmmge/9mu/9nu90zu902fzTPfdd9+tv/Vbv/Xdv/3bv/099913361cddVV/+ne8R3f8bNe/MVf/LVf7MVe7LV5pvvuu+/W3/qt3/ruH/3RH/0c/ou84zu+42e90zu902ffd999t/7DP/zDb3/913/9+/AieLEXe7HX/tzP/dzf+od/+Iff/szP/MzX4aqrrrrqqquu+s9AOX78OFddddVVV1111X+Ns2fPPuMhD3nISz/kIQ956WuuuebBf/qnf/oz/CscHh7u/tmf/dnPHB4e7r7iK77iW7/4i7/4awP8wz/8w+/wX+jw8HD3H/7hH37nt3/7t7/n1ltv/ZvNzc3jD3nIQ176xV/8xV/7FV/xFd/6IQ95yEsfHh5eOnv27K1cddVV/6GuueaaB7/Zm73ZR33u537ub7/4i7/4a19zzTUPvu+++279+Z//+a/+hm/4hvf50R/90c/5h3/4h9/hv8CLvdiLvfbnfu7n/tYrvdIrvTXAz//8z3/1d33Xd30ML4JrrrnmwV/xFV/xVwA/+qM/+jm33nrrX3PVVVddddVVV/1nQA960IO46qqrrrrqqqv+61xzzTUP/qZv+qanA/zoj/7o5/zIj/zIZ/Nv8I7v+I6f9U7v9E6fDXDffffd+lmf9Vmvc999993Kf5Nrrrnmwe/4ju/4Wa/zOq/z3jzTfffdd+uP/uiPfs5v/dZvfTdXXXXVv9k111zz4Nd+7dd+r9d5ndd572uuuebBPNN9991362/91m9994/+6I9+Dv/F3vEd3/Gz3umd3umzAe67775bP+uzPut17rvvvlt5EX3u537ub73Yi73Ya//DP/zDb3/mZ37m63DVVVddddVVV/1nQQ960IO46qqrrrrqqqv+a73O67zOe3/4h3/4d509e/YZX/d1X/fe//AP//Db/Btcc801D/6cz/mc37rmmmsefN99993627/929/zIz/yI5/Nf6Nrrrnmwa/92q/9Xu/0Tu/02TzTfffdd+tv/dZvffeP/uiPfg5XXXXVi+yaa6558Gu/9mu/1zu90zt9Ns9033333fpbv/Vb3/3bv/3b33Pffffdyn+xa6655sEf/uEf/l0v9mIv9toAP/IjP/LZP/qjP/o5/Ct87ud+7m+92Iu92Gvfd999t37Ih3zIQ7jqqquuuuqqq/4zoQc96EFcddVVV1111VX/9d7xHd/xs97pnd7ps++7775bP+RDPuQh/Btdc801D37t137t93qnd3qnzwb4kR/5kc/+0R/90c/hv9mZM2ce9OIv/uKv8zqv8zrv9WIv9mKvDXD27Nln/P3f//1v/dZv/db3/MM//MNvc9VVVz2Pa6655sGv/dqv/V6v8zqv897XXHPNg3mm++6779bf+q3f+u4f/dEf/Rz+m7zO67zOe3/4h3/4dwHcd999t37913/9+/zDP/zDb/Ov8I7v+I6f9U7v9E6fDfCZn/mZr/MP//APv81VV1111VVXXfWfCT3oQQ/iqquuuuqqq676r3fNNdc8+MM+7MO+68Vf/MVf+7d+67e+++u//uvfh3+Hd3zHd/ysd3qnd/psgPvuu+/Wz/qsz3qd++6771b+B3ixF3ux136d13md93qd13md9+aZ7rvvvlvPnj1763333feM3/qt3/ruf/iHf/htrrrq/7Frrrnmwe/4ju/4Wa/zOq/z3jzTfffdd+tv/dZvffdv//Zv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+V/kmmuuefCHf/iHf9eLvdiLvTbAP/zDP/z2Z37mZ74O/wE+93M/97de7MVe7LXvu+++Wz/kQz7kIVx11VVXXXXVVf9d0IMe9CCuuuqqq6666qr/Oc6cOfOgj/iIj/juF3uxF3vt++6779bP+qzPep377rvvVv4DnTlz5kGv8zqv897v9E7v9Nk809mzZ5/xIz/yI5/9W7/1W9/N/yHXXHPNg1/sxV7stV7sxV7sta+55poHv9iLvdhr8wD33XffrQD/8A//8Nv/8A//8Du/9Vu/9d1c9f/GNddc8+AzZ848+MVe7MVe65prrnnw67zO67w3L8B9991362/91m99N8A//MM//M4//MM//Db/i73Yi73Ya3/u537ub/FMP/IjP/LZP/qjP/o5/Ad4x3d8x896p3d6p88G+MzP/MzX+Yd/+Iff5qqrrrrqqquu+u+CHvSgB3HVVVddddVVV/3P803f9E1Pv+aaax5833333frbv/3b3/MjP/Ijn81/sGuuuebBr/3ar/1e7/RO7/TZPNN9991362/91m9994/+6I9+Dv8HXXPNNQ9+sRd7sdd+sRd7sde65pprHvxiL/Zir81zue+++279h3/4h9/+h3/4h9+57777bv2Hf/iH3+aq//WuueaaB585c+bBL/ZiL/ZaL/7iL/7aL/ZiL/bavAD33Xffrb/1W7/13QD/8A//8Dv/8A//8Nv8H/KO7/iOn/VO7/ROnw3wD//wD7/99V//9e9z33333cp/gBd7sRd77c/93M/9LYDP/MzPfJ1/+Id/+G2uuuqqq6666qr/TuhBD3oQV1111VVXXXXV/zzXXHPNg1/7tV/7vd7pnd7pswF+5Ed+5LN/9Ed/9HP4T3DNNdc8+MVe7MVe63Ve53Xe+8Ve7MVeG+C+++679bd/+7e/57d+67e++7777ruV/6OuueaaB585c+bBL/ZiL/ZaL/7iL/7aL/ZiL/baPB/33XffrQBnz569FdB99933dIB/+Id/+B2A++6771aAs2fP3nrffffdylX/ra655poHnzlz5sEv9mIv9lov/uIv/tov9mIv9to8H/fdd9+tAL/1W7/13QD/8A//8Dv/8A//8Nv8H3XNNdc8+MM//MO/68Ve7MVeG+BHfuRHPvtHf/RHP4f/INdcc82Dv+mbvunpAD/yIz/y2T/6oz/6OVx11VVXXXXVVf/d0IMe9CCuuuqqq6666qr/ud7xHd/xs97pnd7pswHuu+++Wz/rsz7rde67775b+U/yOq/zOu/9Oq/zOu/1Yi/2Yq8NcN999936D//wD7/9W7/1W9/zD//wD7/N/3HXXHPNgwFe7MVe7LVf7MVe7LVe7MVe7LWvueaaB/OvdN99990qSffdd9/T77vvvlsB7rvvvlvPnj37DID77rvvVoCzZ8/eet99993KVf8m11xzzYMBXuzFXuy1z5w586AXf/EXf+0Xe7EXe22ej/vuu+/Ws2fP3vr3f//3v3327Nln3Hfffbf+wz/8w2/z/8A7vuM7ftaLv/iLv/aLvdiLvTbAfffdd+vXf/3Xv88//MM//Db/gT73cz/3t17sxV7stf/hH/7htz/zMz/zdbjqqquuuuqqq/4nQA960IO46qqrrrrqqqv+Zztz5syDPvdzP/e3r7nmmgffd999t/7Wb/3Wd//oj/7o5/Cf6Jprrnnwa7/2a7/XO73TO302z3Tffffd+qM/+qOf81u/9Vvfzf8z11xzzYMBzpw58+BrrrnmQYDOnDnzoGuuuebBANdcc82DAc6cOfPga6655sH8K9133323Apw9e/bW++6771ZA991339PPnj37DID77rvvVoCzZ8/eet99993K/zLXXHPNg3mmM2fOPJhnuuaaax4McObMmQfxANdcc82DAV1zzTUP4pnOnDnzYEk6c+bMg/gX3HfffbeePXv21r//+7//7bNnzz7jt37rt76b/2euueaaB7/2a7/2e73TO73TZ/NM9913362/9Vu/9d0/+qM/+jn8B3vHd3zHz3qnd3qnz77vvvtu/ZAP+ZCHcNVVV1111VVX/U+BHvSgB3HVVVddddVVV/3Pd8011zz4tV/7td/rnd7pnT77vvvuu/W3f/u3v+dHfuRHPpv/ZNdcc82DX/u1X/u93umd3umzeab77rvv1t/6rd/67h/90R/9HK56vq655poH2/Y111zzkGuuuebBAGfOnHnQNddc82CAa6655sEAZ86cefA111zzYP6V7rvvvlsBzp49+4z77rvv6QD33XffrWfPnn0GwH333XcrwNmzZ2+97777buVFdM011zyYBzhz5syDAa655poHA5w5c+ZBPMA111zzYIBrrrnmwYAAnzlz5sEA11xzzYP5T3bffffdCnD27Nlb//7v//63/+Ef/uF3/uEf/uG3+X/sxV7sxV77dV7ndd7rdV7ndd6bZ7rvvvtu/a3f+q3v/tEf/dHP4T/Bi73Yi732537u5/4WwGd+5me+zj/8wz/8NlddddVVV1111f8U6EEPehBXXXXVVVddddX/Hu/4ju/4We/0Tu/02QD/8A//8Ntf//Vf/z733Xffrfwnu+aaax78Yi/2Yq/9ju/4jp91zTXXPBjgvvvuu/W3fuu3vvu3f/u3v+e+++67lav+za655poHA5w5c+bB11xzzYMBnzlz5sHXXHPNgwGuueaaBwOcOXPmwddcc82D+Vc6e/bsM2z77Nmzt/JM11xzzUNs+5prrnkw/8nuu+++W3mAs2fP3gpw33333Qpw33333coDnD179hmA77vvvmfwTGfPnr3Vts+ePfsMrnoO11xzzYNf+7Vf+73e6Z3e6bN5gB/5kR/57N/+7d/+nvvuu+9W/pO84zu+42e90zu902cDfOZnfubr/MM//MNvc9VVV1111VVX/U+CHvSgB3HVVVddddVVV/3vcs011zz4cz7nc37rmmuuefB9991362d91me9zn333Xcr/0Ve53Ve571f53Ve571e7MVe7LUBzp49+4y///u//63f+q3f+p5/+Id/+G2u+k93zTXXPBjgzJkzD7rmmmseAnDmzJkHXXPNNQ8GuOaaax4McObMmQdfc801D+ZFdN99993KA5w9e/ZWgPvuu+9Wnum+++67lWc6e/bsMwDuu+++WwEDOnv27K0A9913361c9Z/qmmuuefA7vuM7ftbrvM7rvDfPdN999936W7/1W9/9oz/6o5/Df6JrrrnmwR/+4R/+XS/2Yi/22gA/8iM/8tk/+qM/+jlcddVVV1111VX/06AHPehBXHXVVVddddVV//ucOXPmQZ/7uZ/729dcc82D77vvvlt/67d+67t/9Ed/9HP4L3TNNdc8+B3f8R0/63Ve53Xem2e67777bv3RH/3Rz/mt3/qt7+aq/zHOnDnzIEkCOHPmzIMB7rvvvqdL0n333XcrV/2vcc011zz4tV/7td/rdV7ndd77mmuueTDP9CM/8iOf/Q//8A+/8w//8A+/zX+yF3uxF3vtz/3cz/0tgPvuu+/Wr//6r3+ff/iHf/htrrrqqquuuuqq/4nQgx70IK666qqrrrrqqv+drrnmmge/9mu/9nu90zu902cD/OiP/ujn/MiP/Mhn81/szJkzD3qd13md936nd3qnz+aZzp49+4zf/M3f/K4f/dEf/Ryuuuqqf7drrrnmwe/4ju/4Wa/zOq/z3jzTfffdd+tv/dZvffeP/uiPfg7/Rd7xHd/xs97pnd7pswH+4R/+4bc/8zM/83W46qqrrrrqqqv+J0MPetCDuOqqq6666qqr/nd7x3d8x896p3d6p88GuO+++279rM/6rNe57777buW/2DXXXPPgF3uxF3vtd3zHd/ysa6655sEA9913362/9Vu/9d2//du//T333XffrVx11VUvsmuuuebBr/3ar/1er/M6r/Pe11xzzYN5pt/6rd/67n/4h3/4nd/6rd/6bv6LXHPNNQ/+8A//8O96sRd7sdcG+JEf+ZHP/tEf/dHP4aqrrrrqqquu+p8OPehBD+Kqq6666qqrrvrf75prrnnw53zO5/zWNddc8+D77rvv1t/6rd/67h/90R/9HP6bvM7rvM57vc7rvM57v9iLvdhrA9x33323/sM//MPv/NZv/dZ3/8M//MNvc9VVV71A11xzzYNf+7Vf+73e6Z3e6bN5pvvuu+/W3/qt3/ruH/3RH/0c/ou9zuu8znt/+Id/+HcB3Hfffbd+/dd//fv8wz/8w29z1VVXXXXVVVf9b4Ae9KAHcdVVV1111VVX/d9w5syZB73O67zOe7/TO73TZwP8yI/8yGf/6I/+6Ofw3+iaa6558Du+4zt+1uu8zuu8N89033333fqjP/qjn/Nbv/Vb381VV1112TXXXPPg137t136v13md13nva6655sE803333Xfrj/7oj37Ob/3Wb303/8WuueaaB3/4h3/4d73Yi73YawP81m/91nd//dd//ftw1VVXXXXVVVf9b4Ie9KAHcdVVV1111VVX/d/yju/4jp/1Tu/0Tp8NcPbs2Wd85md+5mvfd999t/Lf6Jprrnnwa7/2a7/XO73TO302D3D27Nln/P3f//1v/cM//MPv3Hfffbf+wz/8w29z1VX/j1xzzTUPfu3Xfu33eqd3eqfP5pnuu+++W3/rt37ru3/rt37ru8+ePfsM/hu82Iu92Gt/7ud+7m8B3Hfffbd+/dd//fv8wz/8w29z1VVXXXXVVVf9b4Me9KAHcdVVV1111VVX/d9zzTXXPPhzPudzfuuaa6558H333Xfrj/7oj37Ob/3Wb303/82uueaaB585c+bB7/RO7/RZL/ZiL/baPJf77rvv1n/4h3/4nX/4h3/47fvuu+/Wf/iHf/htrrrq/5hrrrnmwa/92q/9Xq/zOq/z3tdcc82Deab77rvv1h/90R/9nN/6rd/6bv4bveM7vuNnvdM7vdNnA/zDP/zDb3/913/9+9x33323ctVVV1111VVX/W+EHvSgB3HVVVddddVVV/3fdM011zz4tV/7td/rnd7pnT77vvvuu/W3fuu3vvtHf/RHP4f/Ia655poH2/aLv/iLv86LvdiLvdbrvM7rvDfP5b777rv1H/7hH377H/7hH37nvvvuu/Uf/uEffpurrvpf6pprrnnwa7/2a7/XO73TO302z3Tffffd+lu/9Vvf/Vu/9Vvfffbs2Wfw3+iaa6558Id/+Id/14u92Iu9NsCP/MiPfPaP/uiPfg5XXXXVVVddddX/ZuhBD3oQV1111VVXXXXV/11nzpx50Ou8zuu89zu90zt9NsA//MM//PZnfuZnvg7/Q11zzTUPfrEXe7HXerEXe7HXfp3XeZ335rncd999t/7DP/zDb//DP/zD79x33323/sM//MNvc9VV/0Ndc801D36xF3ux1z5z5syDXud1Xue9r7nmmgfzTPfdd9+tv/Vbv/XdP/qjP/o5/A/wYi/2Yq/9uZ/7ub8FcN9999369V//9e/zD//wD7/NVVddddVVV131vx160IMexFVXXXXVVVdd9X/fi73Yi732h3/4h3/XNddc8+CzZ88+4zM/8zNf+7777ruV/+GuueaaB7/Yi73Ya7/Yi73Ya11zzTUPfrEXe7HX5gHuu+++W8+ePXvr3//93//2P/zDP/zOP/zDP/w2V1313+Caa6558JkzZx78Yi/2Yq/14i/+4q/9Yi/2Yq/Nc7nvvvtu/a3f+q3v/q3f+q3vPnv27DP4H+Id3/EdP+ud3umdPhvgH/7hH377Mz/zM1+Hq6666qqrrrrq/wr0oAc9iKuuuuqqq6666v+Ha6655sGf8zmf81vXXHPNg++7775b/+Ef/uG3f+u3fut7/uEf/uG3+V/immuuefCLvdiLvfaLvdiLvdY111zz4Bd7sRd7bR7g7Nmzz7jvvvueft999936W7/1W9/zD//wD7/NVVf9B7vmmmsefObMmQe/2Iu92Gu9+Iu/+Gu/2Iu92GvzfNx33323nj179ta///u//+3f/u3f/p777rvvVv4Hueaaax784R/+4d/1Yi/2Yq8N8CM/8iOf/aM/+qOfw1VXXXXVVVdd9X8JetCDHsRVV1111VVXXfX/xzXXXPPgF3uxF3utD//wD/9unum+++679eu//uvf5x/+4R9+m/9lrrnmmge/2Iu92Gu/2Iu92Gtdc801D36xF3ux1+YB7rvvvlsl6e///u9/6x/+4R9+57d+67e+m6uu+le45pprHnzmzJkHv9iLvdhrvfiLv/hrv9iLvdhr83zcd999t549e/bWv//7v//tf/iHf/idf/iHf/ht/gd7x3d8x896p3d6p88GuO+++279+q//+vf5h3/4h9/mqquuuuqqq676vwY96EEP4qqrrrrqqquu+v/nmmuuefBrv/Zrv9c7vdM7fTbPdN999936oz/6o5/zW7/1W9/N/1Jnzpx50DXXXPOQF3uxF3utF3/xF3/tF3uxF3ttnst999136z/8wz/8zj/8wz/89m/91m99N1dd9UzXXHPNg8+cOfPgF3uxF3utF3/xF3/tF3uxF3ttno/77rvv1rNnz97693//97999uzZZ/zWb/3Wd/O/xDXXXPPgD//wD/+uF3uxF3ttgN/6rd/67q//+q9/H6666qqrrrrqqv+r0IMe9CCuuuqqq6666qr/v6655poHv/Zrv/Z7vc7rvM57X3PNNQ8GuO+++279rd/6re/+0R/90c/hf7lrrrnmwWfOnHnQi73Yi732i7/4i7/2i73Yi702z+W+++679R/+4R9++x/+4R9+57777rv1H/7hH36bq/7Pu+aaax585syZB7/Yi73Ya11zzTUPfp3XeZ335vm47777bgX4rd/6re8+e/bsM37rt37ru/lf6sVe7MVe+3M/93N/C+C+++679eu//uvf5x/+4R9+m6uuuuqqq6666v8y9KAHPYirrrrqqquuuuqqM2fOPOjFX/zFX+d1Xud13uvFXuzFXhvg7Nmzz/jN3/zN7/rt3/7t77nvvvtu5f+Aa6655sEAL/ZiL/Zar/M6r/PeL/ZiL/baPJf77rvv1n/4h3/47X/4h3/4nfvuu+/Wf/iHf/htrvpf7ZprrnkwwGu/9mu/F8CLv/iLv/aLvdiLvTbP5b777rsV4Ld+67e+G+Af/uEffucf/uEffpv/A97xHd/xs97pnd7pswH+4R/+4be//uu//n3uu+++W7nqqquuuuqqq/6vQw960IO46qqrrrrqqquueqDXeZ3Xee/XeZ3Xea8Xe7EXe22A++6779Z/+Id/+O0f/dEf/Zz77rvvVv6Pueaaax78Yi/2Yq/9Yi/2Yq/1Oq/zOu/Nc7nvvvtuBTh79uytAPfdd98zAP/DP/zD7wDcd999twKcPXv21vvuu+9Wrvpvd8011zz4tV/7td8L4MVf/MVf+8Ve7MVem+fjvvvuu/W3fuu3vhvgH/7hH37nH/7hH36b/0OuueaaB7/2a7/2e73TO73TZ/NMP/IjP/LZP/qjP/o5XHXVVVddddVV/1+gBz3oQVx11VVXXXXVVVc9P2fOnHnQO73TO33267zO67w3z/Rbv/Vb3/Nbv/Vb3/0P//APv83/Uddcc82DX+zFXuy1X+zFXuy1XuzFXuy1Aa655poH8yK67777bgU4e/bsM+67776nA9x33323nj179hkA9913361nz5699b777ruVq/7drrnmmge/9mu/9nsBvPiLv/hrv9iLvdhr83zcd999t/7Wb/3WdwP8wz/8w+/8wz/8w2/zf9Q111zz4Hd8x3f87Nd5ndd5L57pH/7hH377R37kRz7nH/7hH36bq6666qqrrrrq/xP0oAc9iKuuuuqqq6666qoX5pprrnnwa7/2a7/XO73TO302z3Tffffd+qM/+qOf81u/9Vvfzf9x11xzzYMBzpw582CAa6655kFnzpx58DXXXPNggGuuuebBAGfOnHnwNddc82D+lc6ePfsM2z579uyt9913360A9913361nz559xn333XcrwNmzZ2+97777buV/uWuuuebBPNOZM2cezDNdc801DwY4c+bMg3ima6655iGAr7nmmgfzTNdcc81DbPuaa655MC/Efffdd+tv/dZvfTfAP/zDP/zOP/zDP/w2/8ddc801D37t137t93qd13md977mmmsezDP91m/91nf/6I/+6Ofcd999t3LVVVddddVVV/1/hB70oAdx1VVXXXXVVVdd9aK45pprHvzar/3a7/VO7/ROn80z3Xfffbf+9m//9vf8yI/8yGdz1WXXXHPNgwHOnDnzoGuuueYhAGfOnHnQNddc82CAa6655sFnzpx58DXXXPNg/pXuu+++WwHOnj17K8B99933DMD/8A//8DsA9913360AZ8+evfW+++67lX+na6655sE805kzZx4McM011zwY4MyZMw/iAa655pqHAL7mmmsezDNdc801D7Hta6655sH8J7nvvvtu/Yd/+Iffvu+++279h3/4h9/5h3/4h9/m/5Frrrnmwa/92q/9Xu/0Tu/02TzTfffdd+tv/dZvffeP/uiPfg5XXXXVVVddddX/d+hBD3oQV1111VVXXXXVVf8a11xzzYNf+7Vf+71e53Ve572vueaaBwPcd999t/7Wb/3Wd//oj/7o53DVv8qZM2ceJElnzpx58DXXXPNggBd7sRd7LYBrrrnmwQBnzpx58DXXXPNg/pXuu+++WwHOnj37jPvuu+/pAPfdd9+t11xzzYMBXXPNNQ/imc6cOfNgSTpz5syD+E9y33333coDnD179laA++6771aA++6771ae6ezZs7cCArjvvvtuBbjvvvueLkn33Xffrfw/92Iv9mKv/Tqv8zrv9Tqv8zrvzTPdd999t/7Wb/3Wd//oj/7o53DVVVddddVVV111BXrQgx7EVVddddVVV1111b/FNddc8+AXe7EXe+3XeZ3Xea8Xe7EXe22A++6779bf+q3f+u7f/u3f/p777rvvVq76D3XNNdc8GODMmTMPvuaaax4M+MyZMw++5pprHgxwzTXXPBjgzJkzD77mmmsezL/TfffddyvPdPbs2VsB7rvvvlsB7rvvvlt5gLNnz94K6L777ruVZ7rvvvueLkn33XffrVz173bNNdc8+LVf+7Xf653e6Z0+mwf4kR/5kc/+7d/+7e+57777buWqq6666qqrrrrqOaEHPehBXHXVVVddddVVV/17XXPNNQ/+8A//8O96sRd7sdcGOHv27DP+/u///rd+67d+63v+4R/+4be56r/FNddc82CAM2fOPOiaa655CMCZM2cedPbs2WcAvu+++57BM509e/ZW2z579uwzuOp/lGuuuebBr/3ar/1e7/RO7/TZPNN9991362/91m9994/+6I9+DlddddVVV1111VUvGHrQgx7EVVddddVVV1111X+Ua6655sHv+I7v+Fmv8zqv89480z/8wz/89o/8yI98zj/8wz/8NlddddWL7B3f8R0/63Ve53Xe+5prrnkwz3Tffffd+qM/+qOf81u/9VvfzVVXXXXVVVddddW/DD3oQQ/iqquuuuqqq6666j/amTNnHvQ6r/M67/1O7/ROn80znT179hk/8iM/8tm/9Vu/9d1cddVVz9c111zz4Nd+7dd+r3d6p3f6bJ7pvvvuu/W3fuu3vvu3f/u3v+e+++67lauuuuqqq6666qoXHXrQgx7EVVddddVVV1111X+Wa6655sGv/dqv/V6v8zqv897XXHPNgwHuu+++W3/rt37ru3/0R3/0c7jqqqsuu+aaax78ju/4jp/1Oq/zOu/NM9133323/tZv/dZ3/+iP/ujncNVVV1111VVXXfVvgx70oAdx1VVXXXXVVVdd9Z/tmmuuefCLvdiLvdY7vuM7fvY111zzYID77rvv1n/4h3/4nX/4h3/47fvuu+/Wf/iHf/htrrrq/5Frrrnmwa/92q/9Xq/zOq/z3tdcc82DeaYf+ZEf+ezf/u3f/p777rvvVq666qqrrrrqqqv+fdCDHvQgrrrqqquuuuqqq/4rvc7rvM57v87rvM57vdiLvdhr8wD33Xffrf/wD//w2//wD//wO/fdd9+t//AP//DbXHXV/0HXXHPNg1/7tV/7vd7pnd7ps3mm++6779bf+q3f+u4f/dEf/Ryuuuqqq6666qqr/uOgBz3oQVx11VVXXXXVVVf9d7jmmmse/GIv9mKv9WIv9mKvfc011zz4xV7sxV6bB7jvvvtu/Yd/+Iff/od/+Iffue+++279h3/4h9/mqqv+F3vHd3zHz3qd13md977mmmsezDPdd999t/7oj/7o5/zWb/3Wd3PVVVddddVVV131Hw896EEP4qqrrrrqqquuuup/gmuuuebBL/ZiL/baL/ZiL/Za11xzzYNf7MVe7LV5gPvuu+/Ws2fP3vr3f//3v/0P//APv/MP//APv81VV/0Pd8011zz4tV/7td/rnd7pnT6bZ7rvvvtu/a3f+q3v/u3f/u3vue+++27lqquuuuqqq6666j8PetCDHsRVV1111VVXXXXV/0TXXHPNg1/sxV7stV/sxV7sta655poHv9iLvdhr8wBnz559xn333ff0v//7v//tf/iHf/idf/iHf/htrrrqv9E111zz4Nd+7dd+L4AXf/EXf+0Xe7EXe20e4L777rv1t37rt777R3/0Rz+Hq6666qqrrrrqqv8a6EEPehBXXXXVVVddddVV/xtcc801D36xF3ux136xF3ux17rmmmse/GIv9mKvzQPcd999t549e/YZf//3f/9b//AP//A7//AP//DbXHXVf5JrrrnmwS/2Yi/22mfOnHnQi7/4i7/2i73Yi702z8d9991362/91m999z/8wz/8zj/8wz/8NlddddVVV1111VX/tdCDHvQgrrrqqquuuuqqq/43OnPmzINe/MVf/HVe7MVe7LWuueaaB7/Yi73Ya/MA9913361nz5699R/+4R9+5+///u9/+x/+4R9+m6uu+je45pprHnzmzJkHv9iLvdhrvfiLv/hrv9iLvdhr83zcd999t/7DP/zDb9933323/sM//MPv/MM//MNvc9VVV1111VVXXfXfCz3oQQ/iqquuuuqqq6666v+Ca6655sEv9mIv9lov9mIv9trXXHPNg1/sxV7stXmA++6779azZ8/e+vd///e//Q//8A+/8w//8A+/zVVXPR/XXHPNg1/7tV/7vQDe6Z3e6bN5Pu67775bz549e+vf//3f//Y//MM//M4//MM//DZXXXXVVVddddVV//OgBz3oQVx11VVXXXXVVVf9X3TNNdc8+MVe7MVe+8Ve7MVe65prrnnwi73Yi702D3Dffffdevbs2Vv//u///rf/4R/+4Xf+4R/+4be56v+da6655sGv/dqv/V4AL/7iL/7aL/ZiL/baPB/33Xffrb/1W7/13QA/+qM/+jlcddVVV1111VVX/e+AHvSgB3HVVVddddVVV131/8E111zz4Bd7sRd77Rd7sRd7rWuuuebBL/ZiL/baPMDZs2efcd999z397//+73/7H/7hH37nH/7hH36bq/5Pueaaax585syZB7/Yi73Ya734i7/4a7/Yi73Ya/N83Hfffbf+1m/91ncD/MM//MPv/MM//MNvc9VVV1111VVXXfW/E3rQgx7EVVddddVVV1111f9H11xzzYNf7MVe7LVf7MVe7LWuueaaB7/Yi73Ya/MA9913361nz559xt///d//1tmzZ59x33333Xr27Nlb77vvvlu56n+8a6655sFnzpx58Iu92Iu91ou/+Iu/9ou92Iu9Ns/Hfffdd+s//MM//PZ999136z/8wz/8zj/8wz/8NlddddVVV1111VX/d6AHPehBXHXVVVddddVVV10FZ86cedCLv/iLv86LvdiLvdY111zz4Bd7sRd7bV6A++6771ae6ezZs7fed999zwD8D//wD78DcN99990KcPbs2Vvvu+++W7nqP90111zz4Nd+7dd+L4AXf/EXf50Xe7EXey2ey3333Xfr2bNnb/37v//73/6Hf/iH3/mHf/iH3+aqq6666qqrrrrq/zb0oAc9iKuuuuqqq6666qqrntc111zz4Bd7sRd7rRd7sRd7bYBrrrnmwWfOnHnwNddc82D+le67775bAc6ePfuM++677+kA9913361nz559xn333XcrwNmzZ2+97777buWqZ7nmmmsezDOdOXPmwQDXXHPNgwHOnDnzIIAXf/EXf50Xe7EXey2ej/vuu+/W3/qt3/pugB/90R/9HK666qqrrrrqqqv+/0EPetCDuOqqq6666qqrrrrqX+eaa655MMCZM2ceDHDNNdc8CNCLvdiLvRbANddc82CAM2fOPPiaa655MP8K9913362SdN999z39vvvuuxXgvvvuu/Xs2bPPALjvvvtuBfiHf/iH3+Z/mGuuuebBPNOZM2ceDHDNNdc8GODMmTMP4pmuueaaBwNcc801D+YKnTlz5kEA11xzzYN5Ed133323XnPNNQ8GuO+++279rd/6re8G+Id/+Iff/od/+Iff4aqrrrrqqquuuuoq9KAHPYirrrrqqquuuuqqq/5zXXPNNQ8GOHPmzIOuueaahwCcOXPmQddcc82Dr7nmmgcDnDlz5sHXXHPNg/lXuu+++24FOHv27K333XffrYD+4R/+4bcB7rvvvlsBzp49e+t99913K8/lmmuueTDPdObMmQcDXHPNNQ8GOHPmzIN4gGuuuebBANdcc82DAZ05c+ZBANdcc82D+U9y33333coznT179laA++6771aA++6771aAf/iHf/jtf/iHf/gdrrrqqquuuuqqq656ftCDHvQgrrrqqquuuuqqq676n+Oaa655sG1fc801D7nmmmseDHDmzJkHXXPNNQ8GuOaaax585syZB19zzTUP5l/pvvvuu/Waa655MP9J7rvvvlt5prNnz94KcN99990KcN99993KM509e/YZAPfdd9+tXOGzZ88+A+C+++67lauuuuqqq6666qqr/qOgBz3oQVx11VVXXXXVVVdd9b/XNddc82CAM2fOPPiaa655MOAXe7EXe22Aa6655sEAZ86cefA111zzYJ7LfffddyvPdPbs2VsB7rvvvlt5pvvuu+9Wnuns2bPPALjvvvtuBXz27NlnANx33323ctVVV1111VVXXXXV/1ToQQ96EFddddVVV1111VVX/f9xzTXXPPi+++67lauuuuqqq6666qqr/j9AD3rQg7jqqquuuuqqq6666qqrrrrqqquuuuqqq/5PonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwL/cq4l6VbmSgAAAABJRU5ErkJggg==) + +```js + +``` + +![Rendered example of helix 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABMiklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwKn4gueWQqZ4gAAAABJRU5ErkJggg==) diff --git a/docs/kcl/helixRevolutions.md b/docs/kcl/helixRevolutions.md new file mode 100644 index 000000000..d1df81ce0 --- /dev/null +++ b/docs/kcl/helixRevolutions.md @@ -0,0 +1,43 @@ +--- +title: "helixRevolutions" +excerpt: "Create a helix on a cylinder." +layout: manual +--- + +Create a helix on a cylinder. + + + +```js +helixRevolutions(data: HelixRevolutionsData, solid: Solid) -> Solid +``` + + +### Arguments + +| Name | Type | Description | Required | +|----------|------|-------------|----------| +| `data` | [`HelixRevolutionsData`](/docs/kcl/types/HelixRevolutionsData) | Data for helix revolutions. | Yes | +| `solid` | [`Solid`](/docs/kcl/types/Solid) | An solid is a collection of extrude surfaces. | Yes | + +### Returns + +[`Solid`](/docs/kcl/types/Solid) - An solid is a collection of extrude surfaces. + + +### Examples + +```js +part001 = startSketchOn('XY') + |> circle({ center = [5, 5], radius = 10 }, %) + |> extrude(10, %) + |> helixRevolutions({ + angleStart = 0, + ccw = true, + revolutions = 16 + }, %) +``` + +![Rendered example of helixRevolutions 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAIOaklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666n+Na6655sE8lzNnzjyY/0Rnz569ledy33333cpVV1111VVXXXXVVf8bULnqqquuuuqqq6666j/NNddc82CAM2fOPBjgmmuueTDAmTNnHsQzXXPNNQ8GuOaaax7MM505c+bBANdcc82D+R/uvvvuu5UHOHv27K0A9913360803333XcrwNmzZ58BcN99993KM509e/bW++6771auuuqqq6666qqrrvrPgB70oAdx1VVXXXXVVVddddW/7JprrnkwwJkzZx58zTXXPPjMmTMPArjmmmseDHDNNdc8+MyZMw8GuOaaax7Mv9OFCxd4oIsXL/JAFy5c4Pm5ePEi/1YnTpzgBTl58iQPdOLECe538uRJ/iPcd999twKcPXv21vvuu+9WgPvuu+/Ws2fPPgPgvvvuuxXg7Nmzt9533323ctVVV1111VVXXXXVvwQ96EEP4qqrrrrqqquuuur/s2uuuebBAGfOnHnwNddc8+AzZ848CODFX/zFXxvgxV7sxV6bZ7rvvvtuveaaax7MC3HhwgUALl68CMCFCxcAuHjxIgAXLlwA4OLFi9zvwoULAFy8eJH/7U6cOMEDnTx5EoATJ04AcPLkSQBOnDgBwMmTJwE4ceIEJ0+e5F/jvvvuuxXg7Nmzt95333233nfffbeePXv2Gffdd9+tAP/wD//w21x11VVXXXXVVVf9/4Ye9KAHcdVVV1111VVXXfV/2TXXXPNggBd7sRd77TNnzjwI4MVf/MVf+8yZMw++5pprHsy/4MKFCwBcvHiRCxcucPHiRQAuXLjAxYsXAbhw4QIXL17kqv8YJ06cAODkyZOcOHECgJMnT3LixAkATp48yYkTJzh58iT/kvvuu+9WgLNnz95633333Xrffffdevbs2Wfcd999t549e/bW++6771auuuqqq6666qqr/u9CD3rQg7jqqquuuuqqq6763+6aa6558JkzZx78Yi/2Yq8F8OIv/uKvfebMmQdfc801D+aFuHjxIhcuXODixYtcuHABgIsXL3Lx4kUuXLjAxYsX+ZfY5qr/PidOnADg5MmTnDhxAoCHPexhAJw8eZITJ05w8uRJXpD77rvvVoCzZ8/eet999936D//wD79z33333QrwD//wD7/NVVddddVVV1111f9u6EEPehBXXXXVVVddddVV/xtcc801Dz5z5syDX+zFXuy1AF78xV/8tc+cOfPga6655sG8ABcvXuTChQtcvHiRCxcucPHiRS5evMiFCxe4ePEi/5fZ5qpnO3HiBCdPnuTEiRMAPOxhD+PkyZOcOHGCkydP8oLcd999t549e/bW++6779Z/+Id/+J377rvv1n/4h3/4ba666qqrrrrqqqv+d0APetCDuOqqq6666qqrrvqf5JprrnnwmTNnHvxiL/ZirwXw4i/+4q/9Yi/2Yq/NC3Dx4kUuXLjAU5/6VACe9rSnceHCBS5evMhV//ls87/diRMnADh58iQnTpzgYQ97GCdPngTgYQ97GM/Pfffdd+vZs2dvve+++279h3/4h9+57777bv2Hf/iH3+aqq6666qqrrrrqfxb0oAc9iKuuuuqqq6666qr/Ltdcc82DX+zFXuy1z5w586AXf/EXf+0Xe7EXe22ej4sXLwLw1Kc+lQsXLvC0pz2NCxcucPHiRa76v8c2/5OcOHGCkydPcuLECR72sIdx8uRJHvawh/H83HfffbeePXv21vvuu+/Wf/iHf/id++6779Z/+Id/+G2uuuqqq6666qqr/nugBz3oQVx11VVXXXXVVVf9V7jmmmse/Nqv/drvBfDiL/7ir/1iL/Zir81zuXjxIgB//ud/DsBTn/pUnva0p/EfyTZX/f9hm/8sJ06c4OTJk5w4cYKHPexhnDx5koc97GE8t/vuu+9WgH/4h3/47X/4h3/4nfvuu+/Wf/iHf/htrrrqqquuuuqqq/7zoQc96EFcddVVV1111VVX/Ue75pprHvxiL/Zir33mzJkHvfiLv/hrv9iLvdhr81wuXrzIhQsXeNrTnsbFixd56lOfysWLF7nqBbPNVf+1bPOvdeLECR72sIfxsIc9jJMnT3LixAlOnjzJA9133323AvzDP/zDb//DP/zD79x33323/sM//MNvc9VVV1111VVXXfUfCz3oQQ/iqquuuuqqq6666t/rmmuuefBrv/Zrv9eLv/iLv/aLvdiLvTbP5eLFi1y4cIGnPe1pPPWpT+VpT3saV/3PZ5ur/n1sA3DixAlOnjzJiRMneNjDHsYrvMIr8Nzuu+++W//hH/7ht++7775b/+Ef/uF3/uEf/uG3ueqqq6666qqrrvr3QQ960IO46qqrrrrqqquu+te45pprHnzmzJkHv9iLvdhrvfiLv/hrv9iLvdhr8wAXL14E4M///M956lOfytOe9jSuuuqBbHMVnDhxgoc97GE87GEP48SJEzzsYQ/jge67775bAf7hH/7ht//hH/7hd37rt37ru7nqqquuuuqqq67610EPetCDuOqqq6666qqrrnphrrnmmgefOXPmwS/2Yi/2Wi/+4i/+2i/2Yi/22jzAxYsXeepTn8rFixd56lOfytOe9jSuuuq/km3+Lzhx4gQAD3vYw3jYwx7GiRMneNjDHsYD3Xfffbf+wz/8w2//wz/8w+/81m/91ndz1VVXXXXVVVdd9cKhBz3oQVx11VVXXXXVVVc9t2uuuebBr/3ar/1eL/7iL/7aL/ZiL/baPMDFixf58z//cwB+/dd/nav+9Wxz1f8stvmf6MSJEzzsYQ/jYQ97GCdOnOBhD3sY97vvvvtuBfiHf/iH3/6t3/qt7/mHf/iH3+aqq6666qqrrrrqOaEHPehBXHXVVVddddVVV11zzTUPfu3Xfu33evEXf/HXfrEXe7HX5gEuXrzIn//5nwPw67/+61z1v59trvqPY5v/KidOnOBhD3sYD3vYwzhx4gQPe9jDuN99991369mzZ2/9rd/6re+57777bv2Hf/iH3+aqq6666qqrrvr/Dj3oQQ/iqquuuuqqq676/+maa6558Gu/9mu/1+u8zuu89zXXXPNgnunixYs87WlP48KFC/z6r/86V131r2Wbq/5ltvn3OnHiBA972MN42MMexsu//Mtzv/vuu+9WgH/4h3/47d/6rd/6nn/4h3/4ba666qqrrrrqqv+P0IMe9CCuuuqqq6666qr/H6655poHv/Zrv/Z7AbzTO73TZ/MAFy9e5M///M952tOextOe9jSuuup/EttcdYVtXpATJ04A8PIv//I87GEP42EPexj3u++++279h3/4h9/+h3/4h9/5rd/6re/mqquuuuqqq676/wI96EEP4qqrrrrqqquu+r/rmmuuefBrv/Zrv9c111zz4Nd5ndd5b57p4sWLXLx4kac97Wn8+q//Ole96Gxz1f8+tvn/5sSJEzzsYQ/joQ99KC//8i/P/e67775bz549e+tv/dZvfc9v/dZvfTdXXXXVVVddddX/ZehBD3oQV1111VVXXXXV/y3XXHPNg1/7tV/7vV78xV/8tV/sxV7stXmmixcv8hd/8Rc87WlP42lPexpX/d9hm6v+c9nmf7MTJ05w4sQJXv7lX56Xf/mX53733XffrWfPnr31t37rt77nt37rt76bq6666qqrrrrq/xr0oAc9iKuuuuqqq6666n+/a6655sGv/dqv/V4v/uIv/tov9mIv9to808WLF/mLv/gLnva0p/G0pz2Nq67697DNVf86tvmf6MSJE7z8y788L//yL8+JEycAuO+++249e/bsrb/1W7/1Pb/1W7/13Vx11VVXXXXVVf8XoAc96EFcddVVV1111VX/e11zzTUPfu3Xfu33eqd3eqfP5pkuXrzIX/zFX/C0pz2Npz3taVx11f9ktrnqednmv8qJEyd4+Zd/eV7+5V+eEydOAHDffffd+g//8A+//Vu/9Vvf8w//8A+/zVVXXXXVVVdd9b8VetCDHsRVV1111VVXXfW/yzXXXPPg137t136vd3qnd/psnunixYv8xV/8BU972tN42tOexr+HJP6ns81VVz2Qbf4/s82/14kTJzhx4gQv//Ivz8u//Mtzv/vuu+/W3/qt3/ruf/iHf/idf/iHf/htrrrqqquuuuqq/03Qgx70IK666qqrrrrqqv8d3vEd3/GzXvzFX/y1X+zFXuy1eaaLFy/yF3/xF/zGb/wGV/3vZ5ur/nvY5v8T27wwJ06c4GEPexgv93Ivx8Me9jDud9999936oz/6o5/zW7/1W9/NVVddddVVV131vwF60IMexFVXXXXVVVdd9T/XNddc8+DXfu3Xfq93eqd3+mye6eLFi/zFX/wFv/Ebv8FVV/172eaqfx/b/F924sQJXu7lXo6Xf/mX58SJEwDcd999t/7Wb/3Wd//2b//299x33323ctVVV1111VVX/U+FHvSgB3HVVVddddVVV/3Pc8011zz4Hd/xHT/rdV7ndd6bZ7p48SK/8Ru/wV/8xV9w1VX/09nmqhfONv+bnDhxgoc+9KE87GEP4+Ve7uUAuO+++279h3/4h9/+rd/6re/5h3/4h9/mqquuuuqqq676nwY96EEP4qqrrrrqqquu+p/jHd/xHT/rdV7ndd77mmuueTDAxYsX+Yu/+At+4zd+g6uu+v/KNlddYZv/CU6cOMHLvdzL8QZv8Abc77777rv1R3/0Rz/nt37rt76bq6666qqrrrrqfwr0oAc9iKuuuuqqq6666r/fO77jO37W67zO67z3Nddc82CAixcv8pd/+Zf8xm/8Blf9z2ebq/5ns83/R7b5z3TixAke+tCH8vIv//I89KEPBeC+++679bd+67e++0d/9Ec/h6uuuuqqq6666r8betCDHsRVV1111VVXXfXf5x3f8R0/653e6Z0+m2e6ePEiv/Ebv8Ff/uVfctVV/1q2ueo/nm3+P7DNv8fLvdzL8fIv//I89KEPBeC+++679bd+67e++0d/9Ec/h6uuuuqqq6666r8LetCDHsRVV1111VVXXfVf7x3f8R0/653e6Z0+m2d62tOexk/8xE9w8eJFrrrqfzLbXPWisc3/VbZ5QU6cOMEbvMEb8HIv93IA3Hfffbf+1m/91nf/6I/+6Odw1VVXXXXVVVf9V0MPetCDuOqqq6666qqr/uu84zu+42e90zu902fzTE972tP4iZ/4CS5evMhVV/1/ZJurns02/1ecOHGC13/91+flXu7lALjvvvtu/a3f+q3v/tEf/dHP4aqrrrrqqquu+q+CHvSgB3HVVVddddVVV/3ne7EXe7HX/vAP//Dvuuaaax4M8LSnPY2f+Imf4OLFi/xXk8T/Zba56v8X2/x/Zpv/yU6cOMHrv/7r83Iv93IA3Hfffbf+1m/91nf/6I/+6Odw1VVXXXXVVVf9Z0MPetCDuOqqq6666qqr/vNcc801D/7wD//w73qxF3ux1wa4ePEiP/ETP8HTn/50rrrq+bHNVf+1bPP/hW3+u5w4cYJ3eId34KEPfSgA9913361f//Vf/z7/8A//8NtcddVVV1111VX/WdCDHvQgrrrqqquuuuqq/3jXXHPNg1/7tV/7vd7pnd7pswEuXrzIb/7mb/KXf/mXXHXV/yS2uerfxjb/l9nmP8PLvdzL8fqv//qcOHGC++6779bf+q3f+u7f/u3f/p777rvvVq666qqrrrrqqv9o6EEPehBXXXXVVVddddV/rNd5ndd57w//8A//Lp7pN37jN/jN3/xNrrrq/wvbXPWC2eb/Gtv8a5w4cYKXe7mX4/Vf//UBuO+++279rd/6re/+0R/90c/hqquuuuqqq676j4Qe9KAHcdVVV1111VVX/cf53M/93N96sRd7sdcGePrTn85P/MRPcPHiRa666qp/G9v8f2eb/yts80AnTpzg5V7u5Xj91399AO67775bP+uzPut17rvvvlu56qqrrrrqqqv+I6AHPehBXHXVVVddddVV/37v+I7v+Fnv9E7v9NkAFy9e5Cd+4id4+tOfzotCElf972Wbq/7nss3/N7b53+blXu7leL3Xez1OnDjBfffdd+tv/dZvffeP/uiPfg5XXXXVVVddddW/F3rQgx7EVVddddVVV131b3fNNdc8+MM//MO/68Ve7MVeG+Av//Iv+cmf/Emuuuq/mm2u+o9lm//rbPM/xYkTJ3jZl31ZXv/1Xx+Af/iHf/jtr//6r3+f++6771auuuqqq6666qp/K8rx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JCGJ+61WK/7hH/6BF3/xF+fEiRM89rGP5e6772Z3dxcASUgCQBKSAJAEgCQA1us1t912G3/7t3/LarXi0Y9+NNdddx0v+ZIvyfHjx1mtVly6dAlJ3E8S6/Wa++67j7//+7/n7//+71mv1wBce+21XHPNNbz4i784L/7iL84111zDer1mb2+Pq/5vk4QkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhif9PJCEJSUhCEpKQhCQkIQlJ/G8hCUlIQhKSkIQkjh8/zsu//Mvzru/6rrzCK7wCt9xyCwD7+/v87d/+Lb/5m7/Jn/3Zn3HnnXfyb7Gzs8Nrv/Zr80Zv9EbcfPPNANx+++38yI/8CH/0R3/Efffdx4vi+PHjvOM7viMPfvCDAfju7/5uHv/4x3M/25w4cYIP+IAPAOA7v/M7eY3XeA3uvvvun7n11lv/mquuuuqqq666inL8+HGuuuqqq6666iq49dZb/+bN3/zNP3pjY4M/+qM/YrVa8chHPpKbbrqJkydP8nd/93dIQhKSkIQkVqsVj3vc41itVrzYi70YD33oQ5nP5zz96U9HEpIAkASAJCQBIAkASQCs12ue8Yxn8Hd/93esVise9KAHce211/KSL/mSvORLviT33nsvly5dAkASAJIAWK/X3H777fz93/89f//3f896vebYsWMcO3aMa665hhd/8RfnxV/8xbnmmmtYr9fs7e1x1VX/EklIQhKSkIQkJCEJSUhCEpKQhCQkIQlJ/F8kCUlIQhKSkIQkJCEJSUjif5JbbrmFF3/xF+dd3/VdefmXf3luueUWAPb39/nbv/1bfuu3fos///M/584772QYBv4tbrrpJt7wDd+Q137t1+bMmTMA/NEf/RG/8iu/wl/+5V+yXq95UR07doz3eI/34Nprr2V3d5cf+ZEf4dZbb+WBbPNu7/ZunDhxgh/5kR/hjjvu4G3f9m259957//of/uEffoerrrrqqquuuorKVVddddVVV1112X333XfrP/zDP/z2i73Yi732ox71KJ7ylKfwC7/wC5w6dYpHPOIRvOIrviJ//ud/zvNz8eJF/uIv/gKA13/91+f1Xu/1APit3/otbCOJf43d3V1+93d/l7/927/lJV/yJXnN13xNjh07xru927tx6dIlfv7nf57bb78dANtI4oEuXbrEH/7hH/KHf/iHHDt2jBd/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2MY2tgGwjW1sYxvb2MY2tslMbGMb29jGNraxjW1sc/3117O9vc329jb3W6/X7O3tsVqtuPnmm7nffffdd+tv/dZvffdv//Zvf8999913K1ddddVVV1111VUvOvSgBz2Iq6666qqrrrrqqn+La6655sEv9mIv9tqv8zqv814v9mIv9to80+7uLn/7t3/L7/zO7yAJgOPHj3PLLbfwoAc9iJd6qZfigS5dusTu7i633XYbz3jGM7jtttuQxHOTxHOTxPMjiRdEEi+IJB5IEgDHjh0D4NixYwAcO3YMgJ2dHXZ2dpDE9vY2+/v77O3tcdddd3HnnXciCQBJAEjifpIAkASAJAAkASAJAEkASAJAEgCSkASAJAAkASAJAElIAkASkgCQhCQAJCEJSQBIQhKSkIQkJCEJSUhCEpKQhCQkIQlJRASSkIQkIgJJSCIikIQkIgJJRASSkERE0Pc9J06cYGtri42NDf4l0zTRWmO9XrNerxmGAUkASOJ+knhutrmfbQBsA2AbANvYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2Xddx4sQJrr/+eh7o3Llz9H3PbDZjNptxv/vuu+/W3/qt3/ruH/3RH/0crrrqqquuuuqqq/5t0IMe9CCuuuqqq6666qqr/r2uueaaB7/2a7/2e73TO73TZ/NMu7u7POMZz+AZz3gGf/u3f8v9jh8/zvHjx3nJl3xJXvIlX5Ln59KlS9x222084xnP4NKlS9x2220ASOK5SeL5kcTzI4kXRBLPTRIAkpAEgCQAJAEgCQBJAEgCQBL3kwSAJAAkASAJAEkASAJAEgCSAJAEgCQAJCEJAEkASAJAEgCSkASAJCQBIAlJSAJAEpKQBIAkJCEJSUhCEpKQhCQkIQlJSEISEYEkJCGJiEASkogIJCGJiEASEYEkJDGfz7n22msZxxFJALTWAJimCUlIorWGJFprSEISkgCQhCQkcT9JvChsA2AbANvYBsA2trGNbWxjG9vYxja2sY1tbGObWisbGxt0XceJEyfo+577DcOAbfb39zl9+jT3u++++279rd/6re/+7d/+7e+57777buWqq6666qqrrrrq3wc96EEP4qqrrrrqqquuuuo/yjXXXPPgF3uxF3vtF3uxF3ut13md13lvnml3d5fbbruNv/mbv+G2227jgY4dO8aDH/xgbrnlFo4dO8aDHvQgntulS5cAuO2227jtttu4dOkSt912G/eTxHOTxAsiiRdEEg8kCQBJAEgCQBIAkpAEgCQAJHE/SQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSkASAJAAkASAJSQBIAmBra4trr70WgKOjI86ePYskACQhCUlIAkASkpCEJCQhCUlIQhKSkIQkIgJJSEISEYEkJBERSEISEYEkIgJJSCIikEREIAlJRASSkEREIAlJSCIikIQkACQhCUlIAkASAJL4l9jmfraxDYBtbANgG9vYxja2sY1tbFNrZT6fU2tlY2ODjY0NHmgYBgAODg4AOHnyJA9033333fqjP/qjn/Nbv/Vb381VV1111VVXXXXVfxz0oAc9iKuuuuqqq6666qr/DNdcc82DX+zFXuy1X+d1Xue9XuzFXuy1eabd3V1uu+02/vZv/5ZnPOMZAEjifseOHQPgQQ96EA960IM4duwYt9xyC8/t0qVL3HbbbVy6dInbb7+d2267jecmiRdEEi+IJO4nCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASAJIAkASAJAAkASAJAEkASAJAEpIAkASAJAAkIQmAhz3sYQBsbm6ytbUFwOHhIZI4Ojri7NmzHB0dIQlJSAJAEpKQhCQkIQlJSEISkogIJCEJSUgiIpCEJCICSUgiIpCEJCICSUQEkogIJBERSEISEYEkJBERSEISkpCEJCQhCUlIAkASkrifJF4Y2wDYBsA2ALaxjW0AbGObUgqbm5vYZj6fs1gseH7GcWQYBoZhoO97Njc3eaD77rvv1t/6rd/67h/90R/9HK666qqrrrrqqqv+c6AHPehBXHXVVVddddVVV/1nu+aaax782q/92u/14i/+4q/9Yi/2Yq/NM126dIlnPOMZPOMZz+Dv/u7veG6SADh27BjHjh3j2LFjvORLviS33HILz8+lS5e47bbbuP3227l06RK33XYbknh+JPHCSAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASAJIAkASAJCQBIAkASQBIQhIAkgCQhCQkASAJSQBIQhKSkIQkACQhCUlIQhKSkIQkIgJJSEISkogIJCEJSUQEkogIJCGJiEASEYEkIgJJRASSkEREIImIQBKSkEREIAlJSEISkpAEgCQkASCJ+0ni+bHN/WwDYBvb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7Ngxjh07BsDOzg7PbW9vj8c97nHceeed3HnnnUgCQBIAkgCQBIAkJAEgCQBJAEgCQBIAkgCQBIAkACQhCQBJAEhCEgCSAJCEJAAkIQlJAEhCEpKQBIAkJCEJSUhCEpKQhCQkIYmIQBKSkEREIAlJRASSkEREIImIQBIRQUQgiYhAEhGBJCICSfR9z8bGBl3XceLECV4UrTUyk3EckcQ4jrTWAJDEA0UEEUGtlVortVae23333Xfr2bNnb/37v//73/6Hf/iH3/mHf/iH3+aqq6666qqrrrrqfxf0oAc9iKuuuuqqq6666qr/7a655poHv9iLvdhrv9iLvdhrvdiLvdhrX3PNNQ/muVy6dInbbruN22+/nUuXLnH77bfz/EjigSQBIAlJABw7dgyAY8eOAbCzs4MkdnZ2ALjzzjvZ399nf38fAEkASAJAEgCSkASAJAAkASAJAEkASAJAEgCSkASAJAAkIQkASQBIQhKSAJCEJAAkIQlJSEISAJKQhCQkIQlJSEISkogIJCEJSUQEkpBERCAJSUQEkogIJBERSCIikEREEBFIYjabcezYMTY3N1ksFjy3aZqQBEBrDYBxHMlM1us1AJKQhCQAJBERAPR9D0CtlVorz+2+++679R/+4R9++7777rv1H/7hH37nH/7hH36bq6666qqrrrrqqv/d0IMe9CCuuuqqq6666qqr/q+55pprHvxiL/Zir/1iL/Zir3XNNdc8+MVe7MVem+fj0qVL3H777dx2221cunSJvb099vb2eCBJAEgCQBKSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkJAEgCQBJAEgCQBIAkgCQhCQAJAEgCUkASEISAJKQBIAkJCEJAElIQhKSkASAJCQhCUlIQhKSiAgkIQlJRASSkIQkIgJJRASSiAgkERFIIiKQREQgiYjgxIkTSGKaJiTRWkMSmYkkIgJJRASSkIQkJCEJSUiilEIphVorpRQiglorz899991362/91m9999mzZ5/xW7/1W9/NVVddddVVV1111f896EEPehBXXXXVVVddddVV/9ddc801DwZ4sRd7sdd+sRd7sde65pprHvxiL/Zir83zcenSJfb29rh06RK33347e3t7XLp0if39fQAkASAJSQBIAkASAJIAkASAJAAkASAJAEkASEISAJIAkASAJAAkASAJAElIAkASAJKQBIAktra2ANja2uLaa68FYHNzk7Nnz3J0dMTR0RFHR0dIQhKSkIQkJAEgCUlIIiKQhCQkIQlJRASSkEREIAlJRASSiAgkERFIIiKICCQREUgiIogIJBERSCIikEREIImIQBKS6LqOUgp93yOJruvouo4X5L777rv1t37rt74b4B/+4R9+5x/+4R9+m6uuuuqqq6666qr/+9CDHvQgrrrqqquuuuqqq/4/uuaaax4M8GIv9mKv/WIv9mKvdc011zz4xV7sxV6bF2Bvbw+A22+/HYA77riDvb099vf32d/fB0ASAJIAkASAJAAkASAJAEkASAJAEpIAkASAJAAkASAJSQBIAkASAJKQBIAktra2ANja2kISm5ubSALg6OgIgHPnziEJSUhCEpKQhCQkIQlJSEISkpCEJCICSUgiIpCEJCICSUQEkogIJBERSCIiiAgkERFIIiKICCQREXRdR9/31Frpuo5aK7VW+r7nBbnvvvtuPXv27K1///d//9sA//AP//A7//AP//DbXHXVVVddddVVV/3/hB70oAdx1VVXXXXVVVddddWzXXPNNQ8+c+bMg6+55poHv9iLvdhrXXPNNQ8+c+bMg6+55poH8wLs7e0BsLe3x/7+Pnt7e+zv77O/vw/AXXfdBYAkACQBIAkASQBIQhIAkgCQBIAkACQhCQBJAEgCQBKSAJCEJAAkIQkASUhCEpIAkIQkJCEJSUhCEpKQhCQkIQlJSCIikIQkJBERSEISEYEkIgJJRAQRgSQigtlsRkQwm83o+56+75HExsYGXddRa+WFue+++249e/bsrX//93//2wD/8A//8Dv/8A//8NtcddVVV1111VVXXfVA6EEPehBXXXXVVVddddVVV/3LrrnmmgcDvNiLvdhrAXqxF3ux17rmmmsefObMmQdfc801D+ZfsL+/D8De3h4HBwcA7O/vs7+/jyT29/c5ODhAEvv7+0gCQBIAkgCQhCQAJAEgCUkASAJAEpIAkIQkJAEgCUlIAkASkpCEJCQhCUlIQhKSkIQkJBERSEISkogIFosFklgsFkhiPp8zn8+RxGw2YzabMZvN6PueF8V99913K8A//MM//PZ9991369mzZ2+97777nvEP//APv81VV1111VVXXXXVVS8K9KAHPYirrrrqqquuuuqqq/59zpw58yBJOnPmzIOvueaaB585c+ZB11xzzYOvueaaB585c+bB11xzzYP5V9rf3wdAEvv7+0hif38fSdzv4OAAgMPDQyTxQJI4PDwEQBKSkMT9JCEJSWxsbCAJAElIYmNjAwBJAGxsbCAJgI2NDQDm8zmSmM/n/Fvcd999t549e/bW++6779b77rvvVoB/+Id/+B2Af/iHf/htrrrqqquuuuqqq67690IPetCDuOqqq6666qqrrrrqP98111zzYNu+5pprHnLNNdc8GODMmTMPuuaaax4McM011zz4zJkzDwa45pprHswLcN999916zTXXPJj/ge67775bAc6ePXsrwH333XfrfffddyvA2bNnn3Hffffdet999z397Nmzz+Cqq6666qqrrrrqqv8K6EEPehBXXXXVVVddddVVV/3Pc8011zyYZzpz5syDAV9zzTUP4ZnOnDnzIJ7pmmuueTDPxzXXXPNgXgT33XffrTyX++6771Ye4OzZs8/gme67776nAzp79uytAPfdd9+tXHXVVVddddVVV131PxF60IMexFVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Slauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/Ff8IHrNRArOlV2UAAAAASUVORK5CYII=) + + diff --git a/docs/kcl/index.md b/docs/kcl/index.md index a9f13ad4e..21ee4d74c 100644 --- a/docs/kcl/index.md +++ b/docs/kcl/index.md @@ -35,6 +35,7 @@ layout: manual * [`ceil`](kcl/ceil) * [`chamfer`](kcl/chamfer) * [`circle`](kcl/circle) +* [`circleThreePoint`](kcl/circleThreePoint) * [`close`](kcl/close) * [`cm`](kcl/cm) * [`cos`](kcl/cos) @@ -47,6 +48,7 @@ layout: manual * [`getOppositeEdge`](kcl/getOppositeEdge) * [`getPreviousAdjacentEdge`](kcl/getPreviousAdjacentEdge) * [`helix`](kcl/helix) +* [`helixRevolutions`](kcl/helixRevolutions) * [`hole`](kcl/hole) * [`hollow`](kcl/hollow) * [`import`](kcl/import) @@ -80,6 +82,7 @@ layout: manual * [`pi`](kcl/pi) * [`polar`](kcl/polar) * [`polygon`](kcl/polygon) +* [`pop`](kcl/pop) * [`pow`](kcl/pow) * [`profileStart`](kcl/profileStart) * [`profileStartX`](kcl/profileStartX) diff --git a/docs/kcl/mirror2d.md b/docs/kcl/mirror2d.md index 5dc13d82a..5152b0582 100644 --- a/docs/kcl/mirror2d.md +++ b/docs/kcl/mirror2d.md @@ -46,7 +46,7 @@ sketch001 = startSketchOn('XZ') example = extrude(10, sketch001) ``` -![Rendered example of mirror2d 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADj/UlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqudwzTXXPPgd3/EdP+uaa655MFddddVVV/2v8vVf//Xvc999993KVVddddVVV111P/SgBz2Iq6666qqrrrrqihd7sRd77Q//8A//rr7vH3zrrbdy1VVXXfU/gW3+v7LNi2pra+vWRz7ykQ/+zM/8zNf5h3/4h9/mqquuuuqqq64CQA960IO46qqrrrrqqquu+KZv+qanX3PNNQ/+ru/6Lm699VbuJ4n/KyRx1VX/1Wzzf4lt/ieyzX8n2/xXs839HvKQh/B+7/d+3Hfffbd+yId8yEO46qqrrrrqqqsACK666qqrrrrqqss+/MM//LuuueaaB//1X/81z3jGM5CEJCTxP4UkJCEJSUhCEpKQhCQkIQlJSEISkpCEJK666r+DJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQk8T+FJCQhCUlIQhKSkIQkJCEJSfxXkYQkJCEJSUhCEpKQhCT+s0hCEpKQhCQkIQlJ/GeQhCQkceutt/JXf/VXXHPNNQ/+8A//8O/iqquuuuqqq64CoHLVVVddddVVV/FiL/Zir/06r/M67727u8tP//RP859JElc9mySu+o9lm/+rJPFvZZv/LpJ4Udjmv4IkXhjb/GeQxAtjm3+v3/zN3+Qh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9KAHccstt/BAFy9e5K/+6q/4zd/8TZ4f2/xbvezLvixv93Zvxz/8wz/89md+5me+DlddddVVV131n4/KVVddddVVV/0XeLEXe7HXfrEXe7HXBvirv/ornh9J/Fvt7u7yV3/1V/zVX/0Vx48f5yEPeQgPfvCDeZmXeRmOHTvGa7zGawBw6dIl/vZv/5bbb7+d2267jf9stnkgSfx3sc0DSeJ/Otu8IJK46qp/C9v8b2Wb/yls81/NNv8ex44d4yVe4iV4yZd8SY4dO8YDPf3pT+fpT386v/mbv8m/RBL3s82/xtOf/nQAXuzFXuy1X/zFX/y1//7v//63ueqqq6666qr/XFSuuuqqq6666r/A67zO67wXwF/91V+xu7vL/STxH+3SpUv89V//NX/913/Nb//2b/PgBz+YhzzkIbz0S780x44d4zVe4zUAuHTpErfddht/93d/x2233cZ/Bds8kCT+u9jmuUnifwvbvDCSuOr/J9v8X2Gb/yls89/BNv8ex44d4yVe4iV4jdd4DR5od3eXv/zLv+TixYv81V/9Ff9Wkrifbf4lFy9e5C//8i952Zd9WV77tV/7vf7+7//+t7nqqquuuuqq/1zoQQ96EFddddVVV131n+0nfuInDPAVX/EVXLp0if9okviXHD9+nOPHj/PgBz+Yl3mZl+H48ePc79KlS9x222084xnP4O///u/57yKJ/2kk8X+ZJK7638M2/1fZ5n8S2/x3sc2/1bFjxzh27Bi33HILr/Ear8ED7e7u8pd/+ZfceuutPP3pT+e52eY/gm1emBMnTvDxH//xnD179hmf+Zmf+dr33XffrVx11VVXXXXVfx70oAc9iKuuuuqqq676z/ThH/7h3/U6r/M67/1Xf/VX/NRP/RT/USTx73H8+HFe+qVfmoc85CE8+MEP5n6XLl3itttu4xnPeAZ///d/z38nSfxPJYn/jyRx1X8c2/x/Y5v/iWzz38k2/1bHjh3jJV7iJXjQgx7ELbfcwgPt7u7yl3/5l/zVX/0Vu7u7vChs8x/FNs/P+7//+/OQhzyE3/qt3/rur//6r38frrrqqquuuuo/D3rQgx7EVVddddVVV/1n+omf+AkDfOd3fie33nor/x6S+I8miePHj/PgBz+Yl37pl+bBD34wD3Tp0iX+9m//lttvv53bbruN/06S+J9MEle9cJL4v8I2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ALu7uwDceuutvCCSuJ9tntvu7i5Pf/rTechDHvLgd3zHd/ysr//6r38frrrqqquuuupFhx70oAdx1VVXXXXVVf8aP/ETP2GA7/me7+HWW2/luR0/fhyA48ePc/z4cY4dOwbA8ePHOX78OMePH+f48eP8a+zu7gJw6dIldnd3uXTpEgC7u7tcunSJS5cusbu7y38kSfxPIon/rSRx1VX/l9nmfyPb/E9hm/9utrnfsWPHkMSxY8c4fvw4AMeOHeP48eMcP34cgGPHjnH8+HFeVLu7uwDs7u6yu7sLwMWLF9nd3WV3dxeA3d1ddnd3sc0DHT9+nI/92I/lvvvuu/VDPuRDHsJVV1111VVXveioXHXVVVddddW/wuu8zuu8N8Du7i4PetCDeKmXeimOHz8OwIMf/GD+rXZ3d7l06RIAu7u77O7uAvCMZzwDSfxLjh07xrFjx/jPJImr/uNJ4qqr/jewzVX/sWzz3802/5Ld3V0Adnd3ecYznsFzO378OADHjh3j+PHjADzoQQ8C4Pjx49zv+PHjABw/fpx/ye7uLgAXL15kd3cXgN3dXa655poHv+M7vuNn/eiP/ujncNVVV1111VUvGipXXXXVVVdd9a9w5syZBwEcP36c137t1+Y/yvHjxzl+/DgAD3rQg7jqqquuuuqq/8+OHz8OwPHjx3luZ8+efQZXXXXVVVdd9aKjctVVV1111VX/Cj/6oz/6Oddcc82Dr7nmmgdz1VVXXXXVVVf9l7rvvvtu/a3f+q3v5qqrrrrqqqtedOhBD3oQV1111VVXXXXVVVddddVVV1111VVXXXXV/0lUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yr+ESz75LC0z1WPAAAAAElFTkSuQmCC) +![Rendered example of mirror2d 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADkAUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqudwzTXXPPgd3/EdP+uaa655MFddddVVV/2v8vVf//Xvc999993KVVddddVVV111P/SgBz2Iq6666qqrrrrqihd7sRd77Q//8A//rr7vH3zrrbdy1VVXXfU/gW3+v7LNi2pra+vWRz7ykQ/+zM/8zNf5h3/4h9/mqquuuuqqq64CQA960IO46qqrrrrqqquu+KZv+qanX3PNNQ/+ru/6Lm699VbuJ4n/KyRx1VX/1Wzzf4lt/ieyzX8n2/xXs839HvKQh/B+7/d+3Hfffbd+yId8yEO46qqrrrrqqqsACK666qqrrrrqqss+/MM//LuuueaaB//1X/81z3jGM5CEJCTxP4UkJCEJSUhCEpKQhCQkIQlJSEISkpCEJK666r+DJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQk8T+FJCQhCUlIQhKSkIQkJCEJSfxXkYQkJCEJSUhCEpKQhCT+s0hCEpKQhCQkIQlJ/GeQhCQkceutt/JXf/VXXHPNNQ/+8A//8O/iqquuuuqqq64CoHLVVVddddVVV/FiL/Zir/06r/M67727u8tP//RP859JElc9mySu+o9lm/+rJPFvZZv/LpJ4Udjmv4IkXhjb/GeQxAtjm3+v3/zN3+Qh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9KAHccstt/BAFy9e5K/+6q/4zd/8TZ4f2/xbvezLvixv93Zvxz/8wz/89md+5me+DlddddVVV131n4/KVVddddVVV/0XeLEXe7HXfrEXe7HXBvirv/ornh9J/Fvt7u7yV3/1V/zVX/0Vx48f5yEPeQgPfvCDeZmXeRmOHTvGa7zGawBw6dIl/vZv/5bbb7+d2267jf9stnkgSfx3sc0DSeJ/Otu8IJK46qp/C9v8b2Wb/yls81/NNv8ex44d4yVe4iV4yZd8SY4dO8YDPf3pT+fpT386v/mbv8m/RBL3s82/xtOf/nQAXuzFXuy1X/zFX/y1//7v//63ueqqq6666qr/XFSuuuqqq6666r/A67zO67wXwF/91V+xu7vL/STxH+3SpUv89V//NX/913/Nb//2b/PgBz+YhzzkIbz0S780x44d4zVe4zUAuHTpErfddht/93d/x2233cZ/Bds8kCT+u9jmuUnifwvbvDCSuOr/J9v8X2Gb/yls89/BNv8ex44d4yVe4iV4jdd4DR5od3eXv/zLv+TixYv81V/9Ff9Wkrifbf4lFy9e5C//8i952Zd9WV77tV/7vf7+7//+t7nqqquuuuqq/1zoQQ96EFddddVVV131n+0nfuInDPAVX/EVXLp0if9okviXHD9+nOPHj/PgBz+Yl3mZl+H48ePc79KlS9x222084xnP4O///u/57yKJ/2kk8X+ZJK7638M2/1fZ5n8S2/x3sc2/1bFjxzh27Bi33HILr/Ear8ED7e7u8pd/+ZfceuutPP3pT+e52eY/gm1emBMnTvDxH//xnD179hmf+Zmf+dr33XffrVx11VVXXXXVfx70oAc9iKuuuuqqq676z/ThH/7h3/U6r/M67/1Xf/VX/NRP/RT/USTx73H8+HFe+qVfmoc85CE8+MEP5n6XLl3itttu4xnPeAZ///d/z38nSfxPJYn/jyRx1X8c2/x/Y5v/iWzz38k2/1bHjh3jJV7iJXjQgx7ELbfcwgPt7u7yl3/5l/zVX/0Vu7u7vChs8x/FNs/P+7//+/OQhzyE3/qt3/rur//6r38frrrqqquuuuo/D3rQgx7EVVddddVVV/1n+omf+AkDfOd3fie33nor/x6S+I8miePHj/PgBz+Yl37pl+bBD34wD3Tp0iX+9m//lttvv53bbruN/06S+J9MEle9cJL4v8I2V71wtvmfyjb/nWzz73Hs2DFe4iVeggc96EHccsstPNDu7i5/+Zd/yV/91V+xu7vLv4dt/qPY5n4nTpzg4z/+47nvvvtu/ZAP+ZCHcNVVV1111VX/eahcddVVV1111X+i13md13lvgKc//enceuut/FtI4j+aJB5od3eXv/7rv+av//qvOX78OA9+8IN58IMfzEu/9Etz7NgxXuM1XgOAS5cu8bd/+7fcdttt3H777fxXs80DSeJ/Ets8P5K46grbXPV/j23+p7PNfzfb/HscO3aMl3iJl+AlX/IlOXbsGA/09Kc/nVtvvZXf+q3f4j+SJO5nm38PSQDY5uLFizztaU/joQ996IPf8R3f8bN+9Ed/9HO46qqrrrrqqv8c6EEPehBXXXXVVVdd9Z/lm77pm55+zTXXPPg7v/M7ufXWW3lRSeI/miT+tY4fP86DH/xgHvzgB/PSL/3SPNClS5e47bbb+Nu//Vtuv/12/qeQxP8mkrjqqv8NbPO/iW3+J7DNv8exY8d4iZd4CV7jNV6DB9rd3eWv/uqv2N3d5a/+6q94UdjmP4Jt/iM85CEP4f3e7/247777bv2QD/mQh3DVVVddddVV/zmoXHXVVVddddV/ktd5ndd572uuuebBT3/607n11lv5l0jiP5Ik/r12d3f567/+a/76r/+a3/7t3+b48eO89Eu/NA9+8IM5fvw4L/ESL8FLvMRLcOnSJW677Tae8Yxn8Hd/93dI4r+LbR5IEv+T2eYFkcRVV/1Xss3/Rrb5n8I2/x7Hjh3j2LFj3HLLLbzGa7wGD7S7u8tf/dVf8fSnP51bb72Vfy1JANjm30MS97PNv9XTn/50nv70p/OQhzzkwa/zOq/z3r/1W7/13Vx11VVXXXXVfzz0oAc9iKuuuuqqq676z/BN3/RNT7/mmmse/FM/9VP81V/9Fc+PJP4jSeI/gySe2/Hjx3mpl3opHvzgB/PgBz+Y+126dInbbruNZzzjGfzd3/0dAJL4n0QS/9tJ4qqr/i1s87+dbf6nsM2/17Fjx3iJl3gJjh8/zku8xEvwQLu7u/zVX/0Vt956K7feeisAtvmPYpv/KLb513qZl3kZ3u7t3o777rvv1g/5kA95CFddddVVV131H4/KVVddddVVV/0neJ3XeZ33vuaaax4M8Fd/9Vc8kCT+I0niP4MkXpjd3V1+53d+h9/5nd/h+PHjvNRLvRQPfvCDefCDH8xLvMRL8BIv8RK8xmu8BpcuXeIZz3gGt912G7fddhsAkvjvZJvnJon/TWzzL5HEVf+/2Ob/Gtv8T2Obf69jx47xEi/xEjzoQQ/illtu4YF2d3f5q7/6K/76r/+a3d1dnpsk7mebfw9J3M82/x6SALDNi+rpT386T3/603nIQx7y4Bd7sRd77X/4h3/4ba666qqrrrrqPxZ60IMexFVXXXXVVVf9R/vcz/3c33qxF3ux1/6pn/op/uqv/gpJ/EeSxH80SfxHOH78OA960IN46Zd+aR784AfzQJcuXeJv//Zvue2227jtttu4nyT+J5LE/weSuOp/Ptv8X2eb/4ls8x/h2LFjvMRLvAQv+ZIvybFjx3ig3d1d/uqv/orf/u3f5t/CNv9RbPMfxTb/kpd5mZfh7d7u7fiHf/iH3/7Mz/zM1+Gqq6666qqr/mNRueqqq6666qr/YC/2Yi/22i/2Yi/22gB//dd/jST+I0jiP5ok/qPt7u5y6dIl/vZv/5bjx4/zoAc9iAc/+MG81Eu9FMeOHeM1XuM1ALh06RK33XYbf/u3f8ttt93GA0nifwLbPDdJ/F9jm38NSVz172Ob/89s8z+Zbf6jHDt2jJd4iZfgJV/yJTl27Bj3293d5a//+q8B+O3f/m1s8+8hifvZ5t9DEvezzb+HJO5nm+fn6U9/OgAv9mIv9tov/uIv/tp///d//9tcddVVV1111X8c9KAHPYirrrrqqquu+o/0uZ/7ub/1Yi/2Yq/9W7/1W/z2b/82/x6S+I8mif8Mknhhjh07xvHjx3npl35pXuqlXooHunTpErfddhvPeMYz+Lu/+zuemyT+p5PEVf86kvjfxjZX/evY5n862/xHuuWWW7jlllt4jdd4DR5od3eXv/7rv+bWW2/l1ltv5fmxzX8k2/xHsc1/BNs8t5d5mZfh7d7u7fiHf/iH3/nMz/zM1+aqq6666qqr/uNQueqqq6666qr/QC/2Yi/22i/2Yi/22gB//dd/zb+FJP6jSeI/gyReVJcuXeLSpUs84xnP4Gd+5mc4fvw4L/VSL8WDHvQgHvzgB/MSL/ESvMRLvASv8RqvwW233cYznvEM/u7v/g4A2zyQJP6nsc3zI4mrnj/bXPV/h23+N7DNf7Rjx47xEi/xEhw/fpyXeImX4IF2d3f567/+a2699VZuvfVW/iWSuJ9t/r0kAWCbfy9JANjm30MS97MNwNOf/nQAXuzFXuy1XuzFXuy1/+Ef/uG3ueqqq6666qr/GFSuuuqqq6666j/Q67zO67wXwF//9V+zu7vLi0oS/9Ek8R9NEv9Rdnd3+Z3f+R0Ajh8/zku91Evx4Ac/mAc96EG8xEu8BC/xEi/Ba7zGa3Dp0iX+9m//lttuu41Lly4BYJsHksT/VLZ5QSRx1VX/m9jmfxvb/Gc4duwYL/ESL8GDHvQgbrnlFh5od3eXv/7rv+av//qv2d3d5d9KEvezzb+HJO5nm38PSdzPNv8ekgDY3d3lL//yL3nZl31ZXud1Xue9/uEf/uG3ueqqq6666qr/GOhBD3oQV1111VVXXfUf5Sd+4icM8FVf9VXs7u7ywkjiP5ok/qNJ4j+LJJ7bsWPHePCDH8xLvdRL8aAHPYgHunTpEn/7t3/Lbbfdxm233cYLI4n/zSRx1VX/HWzzv5lt/rMcO3aMl3iJl+BBD3oQt9xyCw+0u7vLX//1X/M7v/M7PDfb/EeyzX8U2/xHsM2/1/Hjx/m4j/s47rvvvls/67M+63Xuu+++W7nqqquuuuqqfz8qV1111VVXXfUf5MM//MO/C+Cv//qv2d3d5QWRxH8kSfxHk8R/Bkn8Sy5dusTf/M3f8Dd/8zccP36cBz3oQTzoQQ/ipV7qpTh27Biv8RqvAcClS5e47bbb+Nu//Vtuu+02npttnpsk/rewzQsiiauu+vewzf8FtvnPduzYMV7iJV6Cl3zJl+TYsWPcb3d3l93dXW699VZ+53d+hxdGEvezzb+XJABs8+8lCQDb/HtI4n62+bfY3d3l6U9/Og95yEMe/I7v+I6f9fVf//Xvw1VXXXXVVVf9+6EHPehBXHXVVVddddV/hJ/4iZ8wwHd913dx66238kCS+I8kif9okvjPIIn/CMePH+dBD3oQD3rQg3ipl3opHujSpUvcdttt/O3f/i233XYb/xqS+L9IElf9/2Sb/4ts81/llltu4ZZbbuE1XuM1eKDd3V3++q//mmc84xnceuut/HvZ5j+Kbf6j2OY/im3+NY4fP87HfdzHcd999936IR/yIQ/hqquuuuqqq/79qFx11VVXXXXVf4DXeZ3XeW+Av/7rv+bWW28FQBL/kSTxH00S/xkk8R9td3eX3d1d/vZv/5af+7mf49ixY7zUS70UD3rQg3jQgx7ES7zES/ASL/ESXLp0idtuu41nPOMZ/N3f/R3/Ets8N0n8b2ebF4UkrvrfwTb/X9jmv9KxY8d4iZd4CQBe4zVegwfa3d3lb/7mb7j11lt5xjOeAYBt/iNIAsA2/16SuJ9t/j0kcT/b/HtIAsA2L4rd3V2e/vSn85CHPOTB7/iO7/hZP/qjP/o5XHXVVVddddW/D3rQgx7EVVddddVVV/17fdM3fdPTr7nmmgd/93d/N7feeiv/USTxH00S/xkk8Z9BEv+S48eP85Iv+ZI86EEP4kEPehD3u3TpEpcuXeJv//Zvue2227h06RL/VpK4CiRx1X8M21wFtvnvcOzYMV7iJV6CBz3oQdxyyy080O7uLn/zN3/D3/zN37C7u8sLY5v/SLb5j2Kb/yi2+Y9imxfmIQ95CO/7vu/Lfffdd+uHfMiHPISrrrrqqquu+vehctVVV1111VX/Tq/zOq/z3tdcc82Db731Vm699Vb+vSTxH00S/9Ek8Z9FEv8au7u7/O7v/i4Ax48f55ZbbuGlXuqleNCDHsSxY8e45ZZbALh06RJ/+7d/y2233cZtt93Gv4Ztnh9J/H9im/8IkvjfyjZX/evZ5r/bsWPHeImXeAke9KAHccstt/BAu7u7/M3f/A2/8zu/w7+GJO5nm38vSdzPNv8ekrifbf49JHE/2/x7SALANs/P05/+dJ7+9KfzkIc85MGv8zqv896/9Vu/9d1cddVVV1111b8d5fjx41x11VVXXXXVv8cnfdIn/dTm5ubx3/7t3+aee+7h30ISkpDEfxRJSEIS/1EkIQlJ/EeThCQk8W9x/Phx5vM5x44dYz6fs16v2d3d5brrruN+8/mcBz3oQRw/fhyA++67j/8skrjqqv+PbPM/0S233MLbv/3b88hHPpJjx47xQH/zN3/DM57xDHZ3d5nP5xw/fhxJrFYr/jUkIQlJ/EeQhCQk8e8lCUlI4t9LEpL495KEJCTx3HZ3d3mZl3kZHvzgB7/0L/zCL3wNV1111VVXXfVvR+Wqq6666qqr/h1e53Ve572vueaaB+/u7vLXf/3X/GtI4j+aJP6jSeI/gyT+JcePHwfg2LFjHDt2jOPHjwNw7Ngxjh8/DsCDHvQg/jUuXbrEM57xDP7u7/6O/0y2eX4kcdVV/xfY5n+T2267jd/7vd/jzd/8zXluL/VSL8ULsru7C8ClS5fY3d0F4NZbbwVgd3eXS5cusbu7y3OTxP1s8+8lCQDb/HtJAsA2/x6SuJ9t/j0kAWAbgIsXL/L0pz+dhzzkIQ9+8Rd/8df++7//+9/mqquuuuqqq/5tqFx11VVXXXXVv8PrvM7rvBfAb//2b/OiksR/JEn8R5PEfwZJABw/fhyAY8eOcezYMY4fPw7AsWPHOH78OMeOHeP48eP8a1y6dAmAS5cucenSJXZ3dwG4dOkSly5d4tKlS1y6dIn/brZ5QSRx1VX/k9jmfzPbPNDf/u3f8rd/+7ccO3YMgGPHjnHs2DEkcezYMY4dO8axY8cAOH78OMeOHeP48eMAHD9+nAc96EEAvNRLvRTPbXd3F4BLly6xu7sLwO7uLru7u+zu7gKwu7vL7u4u/x6SuJ9t/j0kcT/b/HtI4n62+beSBMClS5f4q7/6Kx7ykIfwju/4jp/993//96/NVVddddVVV/3bULnqqquuuuqqf6MXe7EXe+0Xe7EXe22Av/7rv+aFkcR/JEn8R5PEv9fx48c5duwYx48f59ixYwAcP36c48ePA/CgBz2If61Lly6xu7vLpUuXuHTpEgCXLl1id3cXgNtuu40XRhL/W9jmhZHEVVf9R7LN/xW2eVFdunQJgEuXLvEvOXbsGADHjh3j+PHjHDt2jGPHjgFw7Ngxjh8/zrFjxzh+/DgAx48f50EPehAvzO7uLgC7u7vs7u6yu7vLpUuXANjd3WV3d5fd3V3+JZK4n23+PSRxP9v8e0gCwDb/HrfeeisAL/ZiL/ZaL/ZiL/ba//AP//DbXHXVVVddddW/HnrQgx7EVVddddVVV/1bfO7nfu5vvdiLvdhr//Zv/za//du/zXOTxH8kSfxHk8S/5Pjx4wAcO3aM48ePc+zYMQCOHz/O8ePHOX78OMeOHeNf49KlSwDs7u5y6dIlLl26BMClS5fY3d3l0qVLXLp0if8Mkvi/ShJXXfVAtvm/yDb/0xw7dgzbHDt2jOPHjwPwoAc9CIBjx44B8KAHPYh/jd3dXQB2d3fZ3d0F4BnPeAYAu7u7ANx66608kG3+o9jmP4pt/i1e5mVehrd5m7fhH/7hH377Mz/zM1+Hq6666qqrrvrXo3LVVVddddVV/wYv9mIv9tov9mIv9toAf/3Xf839JPEfSRL/0SQBcPz4cY4dOwbAgx70IO734Ac/GIDjx49z7Ngx/jUuXbrE7u4uAM94xjO432233QbApUuXuHTpEv+dbPP8SOJ/O9u8KCRx1f9utvn/wjb/U9nmfru7uwBcunSJ2267DYC//du/5fk5duwYx44dQxLHjh3j2LFjHD9+HIBjx45x/Phxjh07xvHjxwE4fvw493vpl35pnp/d3V12d3cB2N3dZXd3l93dXQB2d3fZ3d1ld3eXfw1J3M82/x6SALDNv8bTn/50AF7sxV7stV/sxV7stf/hH/7ht7nqqquuuuqqfx0qV1111VVXXfVv8Dqv8zrvBfDXf/3X7O7uIon/KJL4tzp+/DgAx44d4/jx4xw/fhyA48ePc/z4cY4dO8bx48f517h06RIAu7u7XLp0id3dXQAuXbrEpUuX2N3d5dKlS/xrSeJ/Ets8N0n8X2Sbfw1JXPWfyzZXgW3+J7PNf4RLly5x6dIl/iXHjh0D4Pjx4xw7dgyABz3oQdjm+PHjADzoQQ8C4Pjx4xw/fpx/ye7uLgC7u7vs7u4CcOuttwKwu7sLwK233spzkwSAbf49JHE/2/xLdnd3+au/+ite5mVehtd5ndd5r3/4h3/4ba666qqrrrrqX4fKVVddddVVV/0bvM7rvM57A/zO7/wOkvj3ksQLc/z4cQCOHTvG8ePHOX78OAAPetCDADh+/DjHjx/nX2N3dxdJ7O7ucunSJXZ3dwG47bbbANjd3eXSpUv8Z7HNA0nifxrbPDdJ/H9jm38PSfxfZ5urXnS2+d/ANv+dLl26BMDu7i73+5u/+Rue2/Hjx7HN8ePHOXbsGADHjx/n2LFjHD9+HIBjx45x/Phxjh8/DsDx48e530u/9Evz3HZ3dwHY3d1ld3cXgN3dXXZ3dwHY3d3l4sWL7O7u8m8lCQDbvDC/9Vu/xcu8zMvwYi/2Yq99zTXXPPi+++67lauuuuqqq6560VG56qqrrrrqqn+lD//wD/8ugL/+679md3eXf6vjx48jiWPHjnH8+HGOHz8OwPHjxzl27BgAD37wg/nX2N3dBeDSpUvs7u5y6dIlAHZ3d7l06RIAz3jGM3hBJPHfxTYPJIn/iWzz/EjiqufPNlf9/2Sb/01s8z+FbV5Uu7u7AFy6dIl/ybFjx5DEsWPHOHbsGAAPetCDADh+/DgAD3rQgzh+/DgAx48f51+yu7sLwO7uLru7uwA8/elPB2B3dxeAW2+9lRdEEvezzXPb3d3l6U9/Og95yEMe/I7v+I6f9fVf//Xvw1VXXXXVVVe96NCDHvQgrrrqqquuuupf4yd+4icM8D3f8z3ceuutPLfjx48DcPz4cY4fP86xY8cAOH78OMePH+f48eMcP36cf43d3V0ALl26xO7uLpcuXQJgd3eXS5cucenSJXZ3d/mPJIn/SSTxv5Ukrrrq/zLb/G9km/8pbPPfzTb3O3bsGJI4duwYx48fB+DYsWMcP36c48ePA3Ds2DGOHz/Oi2p3dxeA3d1ddnd3Abh48SK7u7vs7u4CsLu7y+7uLrZ5oOPHj/OxH/ux3Hfffbd+yId8yEO46qqrrrrqqhcdlauuuuqqq676V3id13md9wbY3d3lQQ96EC/1Ui/F8ePHAXjwgx/Mv9Xu7i6XLl0CYHd3l93dXQCe8YxnIIl/ybFjxzh27Bj/mSRx1X88SVx11f8GtrnqP5Zt/rvZ5l+yu7sLwO7uLs94xjN4bsePHwfg2LFjHD9+HIAHPehBABw/fpz7HT9+HIDjx4/zL9nd3QXg4sWL7O7uArC7u8s111zz4Hd8x3f8rB/90R/9HK666qqrrrrqRUPlqquuuuqqq/4Vzpw58yCA48eP89qv/dr8Rzl+/DjHjx8H4EEPehBXXXXVVVdd9f/Z8ePHATh+/DjP7ezZs8/gqquuuuqqq150VK666qqrrrrqX+FHf/RHP+eaa6558DXXXPNgrrrqqquuuuqq/1L33Xffrb/1W7/13Vx11VVXXXXViw496EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwKzXOeDGHRRWQAAAABJRU5ErkJggg==) ```js // Mirror a un-closed sketch across the Y axis. diff --git a/docs/kcl/pop.md b/docs/kcl/pop.md new file mode 100644 index 000000000..b2176d74b --- /dev/null +++ b/docs/kcl/pop.md @@ -0,0 +1,39 @@ +--- +title: "pop" +excerpt: "Remove the last element from an array." +layout: manual +--- + +Remove the last element from an array. + +Returns a new array with the last element removed. + +```js +pop(array: [KclValue]) -> KclValue +``` + + +### Arguments + +| Name | Type | Description | Required | +|----------|------|-------------|----------| +| `array` | [`[KclValue]`](/docs/kcl/types/KclValue) | The array to pop from. Must not be empty. | Yes | + +### Returns + +[`KclValue`](/docs/kcl/types/KclValue) - Any KCL value. + + +### Examples + +```js +arr = [1, 2, 3, 4] +new_arr = pop(arr) +assertEqual(new_arr[0], 1, 0.00001, "1 is the first element of the array") +assertEqual(new_arr[1], 2, 0.00001, "2 is the second element of the array") +assertEqual(new_arr[2], 3, 0.00001, "3 is the third element of the array") +``` + +![Rendered example of pop 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABMiklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwKn4gueWQqZ4gAAAABJRU5ErkJggg==) + + diff --git a/docs/kcl/rem.md b/docs/kcl/rem.md index c5c235e8a..9e53743f5 100644 --- a/docs/kcl/rem.md +++ b/docs/kcl/rem.md @@ -9,7 +9,7 @@ Compute the remainder after dividing `num` by `div`. If `num` is negative, the result will be too. ```js -rem(num: i64, divisor: i64) -> i64 +rem(num: number, divisor: number) -> number ``` ### Tags @@ -21,12 +21,12 @@ rem(num: i64, divisor: i64) -> i64 | Name | Type | Description | Required | |----------|------|-------------|----------| -| `num` | `i64` | The number which will be divided by `divisor`. | Yes | -| `divisor` | `i64` | The number which will divide `num`. | Yes | +| `num` | `number` | The number which will be divided by `divisor`. | Yes | +| `divisor` | `number` | The number which will divide `num`. | Yes | ### Returns -`i64` +`number` ### Examples @@ -35,6 +35,9 @@ rem(num: i64, divisor: i64) -> i64 assertEqual(rem(7, divisor = 4), 3, 0.01, "remainder is 3") assertEqual(rem(-7, divisor = 4), -3, 0.01, "remainder is -3") assertEqual(rem(7, divisor = -4), 3, 0.01, "remainder is 3") +assertEqual(rem(6, divisor = 2.5), 1, 0.01, "remainder is 1") +assertEqual(rem(6.5, divisor = 2.5), 1.5, 0.01, "remainder is 1.5") +assertEqual(rem(6.5, divisor = 2), 0.5, 0.01, "remainder is 0.5") ``` ![Rendered example of rem 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABMiklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwKn4gueWQqZ4gAAAABJRU5ErkJggg==) diff --git a/docs/kcl/std.json b/docs/kcl/std.json index 0ba3e498d..46cb8dfba 100644 --- a/docs/kcl/std.json +++ b/docs/kcl/std.json @@ -56869,6 +56869,4098 @@ "exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([-15, 0], %)\n |> line([30, 0], %)\n |> line([0, 30], %)\n |> line([-30, 0], %)\n |> close(%)\n |> hole(circle({ center = [0, 15], radius = 5 }, %), %)\n\nexample = extrude(5, exampleSketch)" ] }, + { + "name": "circleThreePoint", + "summary": "Construct a circle derived from 3 points.", + "description": "", + "tags": [], + "keywordArguments": true, + "args": [ + { + "name": "p1", + "type": "[number]", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Array_size_2_of_double", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "required": true, + "description": "1st point to derive the circle.", + "labelRequired": false + }, + { + "name": "p2", + "type": "[number]", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Array_size_2_of_double", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "required": true, + "description": "2nd point to derive the circle.", + "labelRequired": true + }, + { + "name": "p3", + "type": "[number]", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Array_size_2_of_double", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "required": true, + "description": "3rd point to derive the circle.", + "labelRequired": true + }, + { + "name": "sketch_surface_or_group", + "type": "SketchOrSurface", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "SketchOrSurface", + "description": "A sketch surface or a sketch.", + "anyOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + }, + { + "$ref": "#/components/schemas/Sketch" + } + ], + "definitions": { + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "id", + "origin", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "id", + "solid", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Solid": { + "description": "An solid is a collection of extrude surfaces.", + "type": "object", + "required": [ + "__meta", + "height", + "id", + "sketch", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "Sketch": { + "description": "A sketch is a collection of paths.", + "type": "object", + "required": [ + "__meta", + "id", + "on", + "paths", + "start" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + } + } + }, + "required": true, + "description": "Plane or surface to sketch on.", + "labelRequired": true + }, + { + "name": "tag", + "type": "TagNode", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_TagDeclarator", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true, + "definitions": { + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "id", + "origin", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "id", + "solid", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Solid": { + "description": "An solid is a collection of extrude surfaces.", + "type": "object", + "required": [ + "__meta", + "height", + "id", + "sketch", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "Sketch": { + "description": "A sketch is a collection of paths.", + "type": "object", + "required": [ + "__meta", + "id", + "on", + "paths", + "start" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + } + } + }, + "required": false, + "description": "Identifier for the circle to reference elsewhere.", + "labelRequired": true + } + ], + "returnValue": { + "name": "", + "type": "Sketch", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Sketch", + "description": "A sketch is a collection of paths.", + "type": "object", + "required": [ + "__meta", + "id", + "on", + "paths", + "start" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "id", + "origin", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "id", + "solid", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "An solid is a collection of extrude surfaces.", + "type": "object", + "required": [ + "__meta", + "height", + "id", + "sketch", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Sketch": { + "description": "A sketch is a collection of paths.", + "type": "object", + "required": [ + "__meta", + "id", + "on", + "paths", + "start" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + } + } + }, + "required": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "exampleSketch = startSketchOn(\"XY\")\n |> circleThreePoint(p1 = [10, 10], p2 = [20, 8], p3 = [15, 5])\n\nexample = extrude(5, exampleSketch)" + ] + }, { "name": "close", "summary": "Construct a line segment from the current origin back to the profile's", @@ -71735,7 +75827,7 @@ }, { "name": "helix", - "summary": "Create a helix on a cylinder.", + "summary": "Create a helix.", "description": "", "tags": [], "keywordArguments": false, @@ -71746,7 +75838,1147 @@ "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", "title": "HelixData", - "description": "Data for helices.", + "description": "Data for a helix.", + "type": "object", + "required": [ + "angleStart", + "axis", + "length", + "radius", + "revolutions" + ], + "properties": { + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise? The default is `false`.", + "default": false, + "type": "boolean" + }, + "length": { + "description": "Length of the helix.", + "type": "number", + "format": "double" + }, + "radius": { + "description": "Radius of the helix.", + "type": "number", + "format": "double" + }, + "axis": { + "description": "Axis to use as mirror.", + "allOf": [ + { + "$ref": "#/components/schemas/Axis3dOrEdgeReference" + } + ] + } + }, + "definitions": { + "Axis3dOrEdgeReference": { + "description": "A 3D axis or tagged edge.", + "anyOf": [ + { + "description": "3D axis and origin.", + "allOf": [ + { + "$ref": "#/components/schemas/AxisAndOrigin3d" + } + ] + }, + { + "description": "Tagged edge.", + "allOf": [ + { + "$ref": "#/components/schemas/EdgeReference" + } + ] + } + ] + }, + "AxisAndOrigin3d": { + "description": "A 3D axis and origin.", + "oneOf": [ + { + "description": "X-axis.", + "type": "string", + "enum": [ + "X" + ] + }, + { + "description": "Y-axis.", + "type": "string", + "enum": [ + "Y" + ] + }, + { + "description": "Z-axis.", + "type": "string", + "enum": [ + "Z" + ] + }, + { + "description": "Flip the X-axis.", + "type": "string", + "enum": [ + "-X" + ] + }, + { + "description": "Flip the Y-axis.", + "type": "string", + "enum": [ + "-Y" + ] + }, + { + "description": "Flip the Z-axis.", + "type": "string", + "enum": [ + "-Z" + ] + }, + { + "type": "object", + "required": [ + "custom" + ], + "properties": { + "custom": { + "type": "object", + "required": [ + "axis", + "origin" + ], + "properties": { + "axis": { + "description": "The axis.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 3, + "minItems": 3 + }, + "origin": { + "description": "The origin.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 3, + "minItems": 3 + } + } + } + }, + "additionalProperties": false + } + ] + }, + "EdgeReference": { + "description": "A tag or a uuid of an edge.", + "anyOf": [ + { + "description": "A uuid of an edge.", + "type": "string", + "format": "uuid" + }, + { + "description": "A tag of an edge.", + "allOf": [ + { + "$ref": "#/components/schemas/TagIdentifier" + } + ] + } + ] + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + } + }, + "required": true, + "labelRequired": true + } + ], + "returnValue": { + "name": "", + "type": "HelixValue", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Helix", + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "value" + ], + "properties": { + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + } + } + }, + "required": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "// Create a helix around the Z axis.\nhelixPath = helix({\n angleStart = 0,\n ccw = true,\n revolutions = 16,\n length = 10,\n radius = 5,\n axis = 'Z'\n})\n\n// Create a spring by sweeping around the helix path.\nspringSketch = startSketchOn('YZ')\n |> circle({ center = [0, 0], radius = 1 }, %)\n// |> sweep({ path = helixPath }, %)", + "" + ] + }, + { + "name": "helixRevolutions", + "summary": "Create a helix on a cylinder.", + "description": "", + "tags": [], + "keywordArguments": false, + "args": [ + { + "name": "data", + "type": "HelixRevolutionsData", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "HelixRevolutionsData", + "description": "Data for helix revolutions.", "type": "object", "required": [ "angleStart", @@ -74543,7 +79775,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "part001 = startSketchOn('XY')\n |> circle({ center = [5, 5], radius = 10 }, %)\n |> extrude(10, %)\n |> helix({\n angleStart = 0,\n ccw = true,\n revolutions = 16\n }, %)" + "part001 = startSketchOn('XY')\n |> circle({ center = [5, 5], radius = 10 }, %)\n |> extrude(10, %)\n |> helixRevolutions({\n angleStart = 0,\n ccw = true,\n revolutions = 16\n }, %)" ] }, { @@ -101871,6 +107103,51 @@ } } }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, { "description": "Data for an imported geometry.", "type": "object", @@ -103901,6 +109178,51 @@ } } }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, { "description": "Data for an imported geometry.", "type": "object", @@ -105935,6 +111257,51 @@ } } }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, { "description": "Data for an imported geometry.", "type": "object", @@ -107546,20 +112913,20 @@ "description": "Axis to use as mirror.", "allOf": [ { - "$ref": "#/components/schemas/AxisOrEdgeReference" + "$ref": "#/components/schemas/Axis2dOrEdgeReference" } ] } }, "definitions": { - "AxisOrEdgeReference": { - "description": "Axis or tagged edge.", + "Axis2dOrEdgeReference": { + "description": "A 2D axis or tagged edge.", "anyOf": [ { - "description": "Axis and origin.", + "description": "2D axis and origin.", "allOf": [ { - "$ref": "#/components/schemas/AxisAndOrigin" + "$ref": "#/components/schemas/AxisAndOrigin2d" } ] }, @@ -107573,8 +112940,8 @@ } ] }, - "AxisAndOrigin": { - "description": "Axis and origin.", + "AxisAndOrigin2d": { + "description": "A 2D axis and origin.", "oneOf": [ { "description": "X-axis.", @@ -108629,14 +113996,14 @@ } ], "definitions": { - "AxisOrEdgeReference": { - "description": "Axis or tagged edge.", + "Axis2dOrEdgeReference": { + "description": "A 2D axis or tagged edge.", "anyOf": [ { - "description": "Axis and origin.", + "description": "2D axis and origin.", "allOf": [ { - "$ref": "#/components/schemas/AxisAndOrigin" + "$ref": "#/components/schemas/AxisAndOrigin2d" } ] }, @@ -108650,8 +114017,8 @@ } ] }, - "AxisAndOrigin": { - "description": "Axis and origin.", + "AxisAndOrigin2d": { + "description": "A 2D axis and origin.", "oneOf": [ { "description": "X-axis.", @@ -132497,6 +137864,4856 @@ "// Create a square circumscribed around a circle of radius 5\nsquare = startSketchOn('XY')\n |> polygon({\n radius = 5.0,\n numSides = 4,\n center = [10, 10],\n inscribed = false\n }, %)\nexample = extrude(5, square)" ] }, + { + "name": "pop", + "summary": "Remove the last element from an array.", + "description": "Returns a new array with the last element removed.", + "tags": [], + "keywordArguments": true, + "args": [ + { + "name": "array", + "type": "[KclValue]", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Array_of_KclValue", + "type": "array", + "items": { + "$ref": "#/components/schemas/KclValue" + }, + "definitions": { + "KclValue": { + "description": "Any KCL value.", + "oneOf": [ + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Uuid" + ] + }, + "value": { + "type": "string", + "format": "uuid" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Bool" + ] + }, + "value": { + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Number" + ] + }, + "value": { + "type": "number", + "format": "double" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Int" + ] + }, + "value": { + "type": "integer", + "format": "int64" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "String" + ] + }, + "value": { + "type": "string" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Array" + ] + }, + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/KclValue" + } + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Object" + ] + }, + "value": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/KclValue" + } + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TagIdentifier" + ] + }, + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TagDeclarator" + ] + }, + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "id", + "origin", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "id", + "solid", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Sketch" + ] + }, + "value": { + "$ref": "#/components/schemas/Sketch" + } + } + }, + { + "type": "object", + "required": [ + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Sketches" + ] + }, + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Sketch" + } + } + } + }, + { + "description": "An solid is a collection of extrude surfaces.", + "type": "object", + "required": [ + "__meta", + "height", + "id", + "sketch", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Solid" + ] + }, + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Solids" + ] + }, + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Solid" + } + } + } + }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "Data for an imported geometry.", + "type": "object", + "required": [ + "__meta", + "id", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ImportedGeometry" + ] + }, + "id": { + "description": "The ID of the imported geometry.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The original file paths.", + "type": "array", + "items": { + "type": "string" + } + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "memory", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Function" + ] + }, + "memory": { + "$ref": "#/components/schemas/ProgramMemory" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Module" + ] + }, + "value": { + "$ref": "#/components/schemas/ModuleId" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "KclNone" + ] + }, + "value": { + "$ref": "#/components/schemas/KclNone" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Solid": { + "description": "An solid is a collection of extrude surfaces.", + "type": "object", + "required": [ + "__meta", + "height", + "id", + "sketch", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Sketch": { + "description": "A sketch is a collection of paths.", + "type": "object", + "required": [ + "__meta", + "id", + "on", + "paths", + "start" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "id", + "origin", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "id", + "solid", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "ProgramMemory": { + "type": "object", + "required": [ + "currentEnv", + "environments" + ], + "properties": { + "environments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Environment" + } + }, + "currentEnv": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "return": { + "allOf": [ + { + "$ref": "#/components/schemas/KclValue" + } + ], + "nullable": true + } + } + }, + "Environment": { + "type": "object", + "required": [ + "bindings" + ], + "properties": { + "bindings": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/KclValue" + } + }, + "parent": { + "type": "integer", + "format": "uint", + "minimum": 0.0, + "nullable": true + } + } + }, + "ModuleId": { + "description": "Identifier of a source file. Uses a u32 to keep the size small.", + "type": "integer", + "format": "uint32", + "minimum": 0.0 + }, + "KclNone": { + "description": "KCL value for an optional parameter which was not given an argument. (remember, parameters are in the function declaration, arguments are in the function call/application).", + "type": "object", + "properties": { + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + } + } + } + } + }, + "required": true, + "description": "The array to pop from. Must not be empty.", + "labelRequired": false + } + ], + "returnValue": { + "name": "", + "type": "KclValue", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "KclValue", + "description": "Any KCL value.", + "oneOf": [ + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Uuid" + ] + }, + "value": { + "type": "string", + "format": "uuid" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Bool" + ] + }, + "value": { + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Number" + ] + }, + "value": { + "type": "number", + "format": "double" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Int" + ] + }, + "value": { + "type": "integer", + "format": "int64" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "String" + ] + }, + "value": { + "type": "string" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Array" + ] + }, + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/KclValue" + } + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Object" + ] + }, + "value": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/KclValue" + } + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TagIdentifier" + ] + }, + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TagDeclarator" + ] + }, + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "id", + "origin", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "id", + "solid", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Sketch" + ] + }, + "value": { + "$ref": "#/components/schemas/Sketch" + } + } + }, + { + "type": "object", + "required": [ + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Sketches" + ] + }, + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Sketch" + } + } + } + }, + { + "description": "An solid is a collection of extrude surfaces.", + "type": "object", + "required": [ + "__meta", + "height", + "id", + "sketch", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Solid" + ] + }, + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Solids" + ] + }, + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Solid" + } + } + } + }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "Data for an imported geometry.", + "type": "object", + "required": [ + "__meta", + "id", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ImportedGeometry" + ] + }, + "id": { + "description": "The ID of the imported geometry.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The original file paths.", + "type": "array", + "items": { + "type": "string" + } + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "memory", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Function" + ] + }, + "memory": { + "$ref": "#/components/schemas/ProgramMemory" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Module" + ] + }, + "value": { + "$ref": "#/components/schemas/ModuleId" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "KclNone" + ] + }, + "value": { + "$ref": "#/components/schemas/KclNone" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ], + "definitions": { + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "KclValue": { + "description": "Any KCL value.", + "oneOf": [ + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Uuid" + ] + }, + "value": { + "type": "string", + "format": "uuid" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Bool" + ] + }, + "value": { + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Number" + ] + }, + "value": { + "type": "number", + "format": "double" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Int" + ] + }, + "value": { + "type": "integer", + "format": "int64" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "String" + ] + }, + "value": { + "type": "string" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Array" + ] + }, + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/KclValue" + } + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Object" + ] + }, + "value": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/KclValue" + } + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TagIdentifier" + ] + }, + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TagDeclarator" + ] + }, + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "id", + "origin", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "id", + "solid", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Sketch" + ] + }, + "value": { + "$ref": "#/components/schemas/Sketch" + } + } + }, + { + "type": "object", + "required": [ + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Sketches" + ] + }, + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Sketch" + } + } + } + }, + { + "description": "An solid is a collection of extrude surfaces.", + "type": "object", + "required": [ + "__meta", + "height", + "id", + "sketch", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Solid" + ] + }, + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Solids" + ] + }, + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Solid" + } + } + } + }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "Data for an imported geometry.", + "type": "object", + "required": [ + "__meta", + "id", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ImportedGeometry" + ] + }, + "id": { + "description": "The ID of the imported geometry.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The original file paths.", + "type": "array", + "items": { + "type": "string" + } + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "memory", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Function" + ] + }, + "memory": { + "$ref": "#/components/schemas/ProgramMemory" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Module" + ] + }, + "value": { + "$ref": "#/components/schemas/ModuleId" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "type": "object", + "required": [ + "__meta", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "KclNone" + ] + }, + "value": { + "$ref": "#/components/schemas/KclNone" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Solid": { + "description": "An solid is a collection of extrude surfaces.", + "type": "object", + "required": [ + "__meta", + "height", + "id", + "sketch", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Sketch": { + "description": "A sketch is a collection of paths.", + "type": "object", + "required": [ + "__meta", + "id", + "on", + "paths", + "start" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "id", + "origin", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "id", + "solid", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "ProgramMemory": { + "type": "object", + "required": [ + "currentEnv", + "environments" + ], + "properties": { + "environments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Environment" + } + }, + "currentEnv": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "return": { + "allOf": [ + { + "$ref": "#/components/schemas/KclValue" + } + ], + "nullable": true + } + } + }, + "Environment": { + "type": "object", + "required": [ + "bindings" + ], + "properties": { + "bindings": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/KclValue" + } + }, + "parent": { + "type": "integer", + "format": "uint", + "minimum": 0.0, + "nullable": true + } + } + }, + "ModuleId": { + "description": "Identifier of a source file. Uses a u32 to keep the size small.", + "type": "integer", + "format": "uint32", + "minimum": 0.0 + }, + "KclNone": { + "description": "KCL value for an optional parameter which was not given an argument. (remember, parameters are in the function declaration, arguments are in the function call/application).", + "type": "object", + "properties": { + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + } + } + } + } + }, + "required": true, + "labelRequired": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "arr = [1, 2, 3, 4]\nnew_arr = pop(arr)\nassertEqual(new_arr[0], 1, 0.00001, \"1 is the first element of the array\")\nassertEqual(new_arr[1], 2, 0.00001, \"2 is the second element of the array\")\nassertEqual(new_arr[2], 3, 0.00001, \"3 is the third element of the array\")" + ] + }, { "name": "pow", "summary": "Compute the number to a power.", @@ -137290,6 +147507,51 @@ } } }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, { "description": "Data for an imported geometry.", "type": "object", @@ -139317,6 +149579,51 @@ } } }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, { "description": "Data for an imported geometry.", "type": "object", @@ -139957,6 +150264,51 @@ } } }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, { "description": "Data for an imported geometry.", "type": "object", @@ -141985,6 +152337,51 @@ } } }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, { "description": "Data for an imported geometry.", "type": "object", @@ -142652,6 +153049,51 @@ } } }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, { "description": "Data for an imported geometry.", "type": "object", @@ -144671,6 +155113,51 @@ } } }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, { "description": "Data for an imported geometry.", "type": "object", @@ -146698,6 +157185,51 @@ } } }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, { "description": "Data for an imported geometry.", "type": "object", @@ -147338,6 +157870,51 @@ } } }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, { "description": "Data for an imported geometry.", "type": "object", @@ -149368,6 +159945,51 @@ } } }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, { "description": "Data for an imported geometry.", "type": "object", @@ -151396,6 +162018,51 @@ } } }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, { "description": "Data for an imported geometry.", "type": "object", @@ -152063,6 +162730,51 @@ } } }, + { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Helix" + ] + }, + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, { "description": "Data for an imported geometry.", "type": "object", @@ -153550,12 +164262,12 @@ "args": [ { "name": "num", - "type": "i64", + "type": "number", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "int64", - "type": "integer", - "format": "int64" + "title": "double", + "type": "number", + "format": "double" }, "required": true, "description": "The number which will be divided by `divisor`.", @@ -153563,12 +164275,12 @@ }, { "name": "divisor", - "type": "i64", + "type": "number", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "int64", - "type": "integer", - "format": "int64" + "title": "double", + "type": "number", + "format": "double" }, "required": true, "description": "The number which will divide `num`.", @@ -153577,12 +164289,12 @@ ], "returnValue": { "name": "", - "type": "i64", + "type": "number", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "int64", - "type": "integer", - "format": "int64" + "title": "double", + "type": "number", + "format": "double" }, "required": true, "labelRequired": true @@ -153590,7 +164302,7 @@ "unpublished": false, "deprecated": false, "examples": [ - "assertEqual(rem(7, divisor = 4), 3, 0.01, \"remainder is 3\")\nassertEqual(rem(-7, divisor = 4), -3, 0.01, \"remainder is -3\")\nassertEqual(rem(7, divisor = -4), 3, 0.01, \"remainder is 3\")" + "assertEqual(rem(7, divisor = 4), 3, 0.01, \"remainder is 3\")\nassertEqual(rem(-7, divisor = 4), -3, 0.01, \"remainder is -3\")\nassertEqual(rem(7, divisor = -4), 3, 0.01, \"remainder is 3\")\nassertEqual(rem(6, divisor = 2.5), 1, 0.01, \"remainder is 1\")\nassertEqual(rem(6.5, divisor = 2.5), 1.5, 0.01, \"remainder is 1.5\")\nassertEqual(rem(6.5, divisor = 2), 0.5, 0.01, \"remainder is 0.5\")" ] }, { @@ -153625,7 +164337,7 @@ "description": "Axis of revolution.", "allOf": [ { - "$ref": "#/components/schemas/AxisOrEdgeReference" + "$ref": "#/components/schemas/Axis2dOrEdgeReference" } ] }, @@ -153638,14 +164350,14 @@ } }, "definitions": { - "AxisOrEdgeReference": { - "description": "Axis or tagged edge.", + "Axis2dOrEdgeReference": { + "description": "A 2D axis or tagged edge.", "anyOf": [ { - "description": "Axis and origin.", + "description": "2D axis and origin.", "allOf": [ { - "$ref": "#/components/schemas/AxisAndOrigin" + "$ref": "#/components/schemas/AxisAndOrigin2d" } ] }, @@ -153659,8 +164371,8 @@ } ] }, - "AxisAndOrigin": { - "description": "Axis and origin.", + "AxisAndOrigin2d": { + "description": "A 2D axis and origin.", "oneOf": [ { "description": "X-axis.", @@ -154683,14 +165395,14 @@ } }, "definitions": { - "AxisOrEdgeReference": { - "description": "Axis or tagged edge.", + "Axis2dOrEdgeReference": { + "description": "A 2D axis or tagged edge.", "anyOf": [ { - "description": "Axis and origin.", + "description": "2D axis and origin.", "allOf": [ { - "$ref": "#/components/schemas/AxisAndOrigin" + "$ref": "#/components/schemas/AxisAndOrigin2d" } ] }, @@ -154704,8 +165416,8 @@ } ] }, - "AxisAndOrigin": { - "description": "Axis and origin.", + "AxisAndOrigin2d": { + "description": "A 2D axis and origin.", "oneOf": [ { "description": "X-axis.", @@ -178788,7 +189500,7 @@ "description": "The path to sweep along.", "allOf": [ { - "$ref": "#/components/schemas/Sketch" + "$ref": "#/components/schemas/SweepPath" } ] }, @@ -178806,6 +189518,17 @@ } }, "definitions": { + "SweepPath": { + "description": "A path to sweep along.", + "anyOf": [ + { + "$ref": "#/components/schemas/Sketch" + }, + { + "$ref": "#/components/schemas/Helix" + } + ] + }, "Sketch": { "description": "A sketch is a collection of paths.", "type": "object", @@ -180111,6 +190834,44 @@ "nullable": true } } + }, + "Helix": { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "value" + ], + "properties": { + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } } } }, @@ -180177,6 +190938,17 @@ } }, "definitions": { + "SweepPath": { + "description": "A path to sweep along.", + "anyOf": [ + { + "$ref": "#/components/schemas/Sketch" + }, + { + "$ref": "#/components/schemas/Helix" + } + ] + }, "Sketch": { "description": "A sketch is a collection of paths.", "type": "object", @@ -181482,6 +192254,44 @@ "nullable": true } } + }, + "Helix": { + "description": "A helix.", + "type": "object", + "required": [ + "__meta", + "angleStart", + "ccw", + "revolutions", + "value" + ], + "properties": { + "value": { + "description": "The id of the helix.", + "type": "string", + "format": "uuid" + }, + "revolutions": { + "description": "Number of revolutions.", + "type": "number", + "format": "double" + }, + "angleStart": { + "description": "Start angle (in degrees).", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "Is the helix rotation counter clockwise?", + "type": "boolean" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } } } }, @@ -182872,7 +193682,8 @@ "unpublished": false, "deprecated": false, "examples": [ - "// Create a pipe using a sweep.\n\n\n// Create a path for the sweep.\nsweepPath = startSketchOn('XZ')\n |> startProfileAt([0.05, 0.05], %)\n |> line([0, 7], %)\n |> tangentialArc({ offset = 90, radius = 5 }, %)\n |> line([-3, 0], %)\n |> tangentialArc({ offset = -90, radius = 5 }, %)\n |> line([0, 7], %)\n\n// Create a hole for the pipe.\npipeHole = startSketchOn('XY')\n |> circle({ center = [0, 0], radius = 1.5 }, %)\n\nsweepSketch = startSketchOn('XY')\n |> circle({ center = [0, 0], radius = 2 }, %)\n |> hole(pipeHole, %)\n |> sweep({ path = sweepPath }, %)" + "// Create a pipe using a sweep.\n\n\n// Create a path for the sweep.\nsweepPath = startSketchOn('XZ')\n |> startProfileAt([0.05, 0.05], %)\n |> line([0, 7], %)\n |> tangentialArc({ offset = 90, radius = 5 }, %)\n |> line([-3, 0], %)\n |> tangentialArc({ offset = -90, radius = 5 }, %)\n |> line([0, 7], %)\n\n// Create a hole for the pipe.\npipeHole = startSketchOn('XY')\n |> circle({ center = [0, 0], radius = 1.5 }, %)\n\nsweepSketch = startSketchOn('XY')\n |> circle({ center = [0, 0], radius = 2 }, %)\n |> hole(pipeHole, %)\n |> sweep({ path = sweepPath }, %)", + "// Create a spring by sweeping around a helix path.\n\n\n// Create a helix around the Z axis.\nhelixPath = helix({\n angleStart = 0,\n ccw = true,\n revolutions = 16,\n length = 10,\n radius = 5,\n axis = 'Z'\n})\n\n// Create a spring by sweeping around the helix path.\nspringSketch = startSketchOn('YZ')\n |> circle({ center = [0, 0], radius = 1 }, %)\n// |> sweep({ path = helixPath }, %)" ] }, { diff --git a/docs/kcl/sweep.md b/docs/kcl/sweep.md index 0b7e5191d..64059c64e 100644 --- a/docs/kcl/sweep.md +++ b/docs/kcl/sweep.md @@ -52,4 +52,26 @@ sweepSketch = startSketchOn('XY') ![Rendered example of sweep 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAElIUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVS+Sa6655sE805kzZx4McM011zyYZzpz5syDeC7XXHPNg3k+rrnmmgfzAtx333238gLcd999t/JMZ8+efQbPdN99993KM509e/bW++6771auuuqqq6666qqrrrrqqqsAPehBD+Kqq6666qqr/r+55pprHgxw5syZB19zzTUPPnPmzIN4pmuuuebB11xzzYMBzpw58+BrrrnmwTyX++6779ZrrrnmwTzA7u4uu7u73G93d5fjx4/z/Ozu7vKCHD9+HIDd3V2e2/Hjx3mgBz/4wbww9913360AZ8+evfW+++67FeAf/uEffgfgvvvuu/Xs2bO33nfffbdy1VVXXXXVVVddddVVV/1fhR70oAdx1VVXXXXVVf/XXHPNNQ8+c+bMg6+55poHnzlz5kEAL/7iL/7aZ86cefA111zzYJ6PW2+9ld3dXQB2d3c5fvw4u7u7ABw/fpzjx49z6623AnD8+HGOHz/O/Y4fPw7A8ePH+c+wu7vL/XZ3dwHY3d0FYHd3l0uXLnG/3d1ddnd3OX78OMePHwfg2LFjHD9+HIDjx4/z4Ac/mPvdd999twL8wz/8w28D/MM//MPv/MM//MNv33fffbdy1VVXXXXVVVddddVVV/1vhx70oAdx1VVXXXXVVf9bXXPNNQ8+c+bMg1/sxV7sta655poH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A9nGNraxjW2em21s868hiQeSxItCEpJ4fiTxb9F13YO56qqrrrrqqquuuuqqq/4nI7jqqquuuuqq/2Vaa9jGNraxDYBtnpttAGxzP9v8S2zzwtjmBbGNbe5nm/vZxja2sc39bGObF5Uk/q0k8R9BElddddVVV1111VVXXXXV/3gEV1111VVXXfW/zzMAbHM/2/x72OYFsc0LYhvb2AbANgC2sY1tAGxjm+dmmxfENv+VJHE/SQBI4oWRxFVXXXXVVVddddVVV131PxrBVVddddVVV/0vI+nWzMQ2tnkg29zPNi+IbZ6bbR7INs/NNvezzQPZBsA297ONbWxjG9vYxja2AbDNfzVJ/FtJ4n6z2ezBXHXVVVddddVVV1111VX/kxFcddVVV1111f8ykm61zf1s80C2sc39bANgmweyzXOzzQtiGwDbPJBtbANgGwDb2AbANi8q27wgknhBJPGvJYl/K0lIwjZXXXXVVVddddVVV1111f9oVK666qqrrrrqfyHb2MY2ALaxzX8E20gCwDaSsI0k7mcbANvczzYAtrmfbQBsYxvb2Oa52eZ+trHN/ySSkMRzm81mD+aqq6666qqrrrrqqquu+p+M4Kqrrrrqqqv+l4mIWwFsA2CbF8Q2D2SbB7LNv5VtnpttAGxjGwDb3M82tnkg2wDY5r+aJB5IEi+MJB5IElddddVVV1111VVXXXXV/2gEV1111VVXXfW/0DRNt9rGNg9km+fHNi+IbZ6bbe5nm/vZxjYPZBvb2AbANgC2sQ2AbWxzP9vYxjb/USTxH0kS/xLbXHXVVVddddVVV1111VX/oxFcddVVV1111f9CwzDcahsA29jGNgC2sY1tnh/bPDfb/Etscz/bANjmgWwDYBsA29jGNraxjW2em23+LSTxn00Sz48kJFFKeTBXXXXVVVddddVVV1111f9UBFddddVVV131v1Bm3mob27yobHM/2zw32zyQbV4Y29zPNvezDYBtAGzz3GxjGwDb3M82/x6SkASAJCTxL5HEA0nihZGEJK666qqrrrrqqquuuuqq/xUIrrrqqquuuup/ocy81Ta2AbANgG2em21eVLZ5INsA2OYFsQ2AbWwDYBsA2wDYxja2sc39bHM/2/xHkcT9JCEJSfxHk0Qp5cFcddVVV1111VVXXXXVVf9TEVx11VVXXXXV/0KtNWwDYBsA2zw327wgtnl+bPOC2MY297PNc7MNgG0AbHM/2wDYxjYAtvmvIonnRxJXXXXVVVddddVVV1111f9JBFddddVVV131v5Ck37GNbZ6bbZ6bbQBs80C2+bewjW3uZxvb2AbANgC2AbCNbQBscz/bANjmv4ok/iNIAiAiuOqqq6666qqrrrrqqqv+xyK46qqrrrrqqv+FbGMb29jGNg9kG9u8KGzz3GxzP9sA2Ob5sc0D2QbANgC2sY1tbANgG9s8P7b5zyaJF4Uk7ieJ5yaJUsqDueqqq6666qqrrrrqqqv+pyK46qqrrrrqqv+FIuJW2zyQbWzzL7HNc7PNc7PNv8Q297PN/WwDYBvbPJBt7mcb2wDYxjb/XSRxP0k8kCQAJAEgift1Xfcgrrrqqquuuuqqq6666qr/qQiuuuqqq6666n+pzMQ2trHNC2IbANvczzb/Gra5n21scz/b2AbANrYBsM39bGMb29jGNra5n23+q0ni30sSkrjqqquuuuqqq6666qqr/sciuOqqq6666qr/hSLiVknYxjYPZJv72eZFZZvnZpsHss39bPOC2AbANrb517LNi0oS/5UkASAJAElcddVVV1111VVXXXXVVf9jEVx11VVXXXXV/1Kr1eq3bXM/29gGwDa2eW62uZ9tnpttXhDbPDfbANjGNraxDYBtbANgG9vYxja2sY1tbANgm38NSfx7SeKBJPGv1ff9g7nqqquuuuqqq6666qqr/qciuOqqq6666qr/pTIT29jGNi+MbZ4f2zw32zyQbV4Y2zw329gGwDa2AbDN82ObF4Uk/qtIAkASV1111VVXXXXVVVddddX/WlSuuuqqq6666n+pzLzVNs/NNv9etpHE82Mb29jmgWxjG9vczzb3sw2AbWzz/NjGNgC2+a8gCdv8W0ii7/sHc9VVV1111VVXXXXVVVf9T0Vw1VVXXXXVVf9LtdZutY1tbGMb2zw32zyQbR7INs+Pbe5nGwDbPJBtAGzzQLaxDYBtbGMb2/xnkMTzIwlJSEIS/1EkcdVVV1111VVXXXXVVVf9r0Bw1VVXXXXVVf9LZSa2sc1zs41tbHM/27wgtvm3ss0LYpvnZhvbANgGwDa2+Y8kiecmiX+JJF4QSdxPEpKQxFVXXXXVVVddddVVV131PxbBVVddddVVV/0vJel3bANgG9u8qGzz3Gzz3GxzP9u8MLaxjW1sYxsA29jGNra5n20AbPOvJYnnJgkASUjiBZHEc5PEv0QSz0/f9w/mqquuuuqqq6666qqrrvqfiuCqq6666qqr/peyTWZim/vZxjbPzTYAtrmfbZ6bbZ6bbR7INraxzf1s8/zY5rnZxjYAtnkg2wDYBsA2/xqSeFFI4kUhiecmiauuuuqqq6666qqrrrrqfw2Cq6666qqrrvpfKiJuBbCNbf6j2OZFZZsHso1tbHM/29jGNraxjW1sA2Ab29gGwDb/FSTxQJK4nyQeSBIvyGw2ezBXXXXVVVddddVVV1111f9UBFddddVVV131v1hmcj/b3M8297PNA9nmfrZ5fmzzQLYBsM1zsw2AbR7INrZ5INv8e0nifwpJSOKqq6666qqrrrrqqquu+h+L4Kqrrrrqqqv+l4qIWwFsYxsA29gGwDa2uZ9tnh/bPD+2eVHZ5n62sc39bGMb2wDYxja2sQ2Abf43kYQkAGxTSnkwV1111VVXXXXVVVddddX/RARXXXXVVVdd9b/Yer3+bdsA2Obfyjb/Etvczza2sc0D2eZ+trGNbe5nm+dmGwDb2Oa/kiSuuuqqq6666qqrrrrqqv/TCK666qqrrrrqf7HMxDa2eSDbPJBtHsg2z802z802z802D2QbANu8ILaxDYBtbGMb27wgtvmXSOI/kiSemyReGEmUUh7MVVddddVVV1111VVXXfU/EcFVV1111VVX/S/WWrvVNrYBsI1tAGzz3GxzP9s8N9s8N9v8S2wDYBvb2MY2trHN/Wzz3Gxjm/vZxjb/VSTx/EjiXyKJq6666qqrrrrqqquuuup/NIKrrrrqqquu+l8sM2+1DYBtnpttbPOvYZsXxDb3s80D2eYFsY1tAGxjG9vY5n62+c8gCUlIQhL/HpKQxANJQhJXXXXVVVddddVVV1111f9IBFddddVVV131v1hmYhvb/EtsA2Cb+9nmRWGbB7INgG1s80C2sY1tbGMb29jGNs/NNvezzXOzzb+VJJ6bJJ6bJO4niedHEg8kifvVWh/MVVddddVVV1111VVXXfU/EcFVV1111VVX/S8m6XdsYxvb2MY2tnlR2ea52cY2z49tnpttAGzzL7GNbWxjGwDb/EeTxAsiif9Ikrjqqquuuuqqq6666qqr/kciuOqqq6666qr/xWyTmTw/trmfbR7INi8K29zPNi+MbR7INraxjW1sY5t/iW3+K0jiXyKJ50cSAJKQRNd1D+Kqq6666qqrrrrqqquu+p+I4Kqrrrrqqqv+F4uIW21jG9vY5oFsY5v72eb5sc2/lm1s89xsY5sXxDa2sY1tbGMb29jmP4Ik/rUk8YJI4oWRxFVXXXXVVVddddVVV131PxLBVVddddVVV/0vZxvb2AbANrb5l9jmgWzz/NjmfrYBsM39bGMbANs8kG1sYxvb2OZFYRvb2OZfSxIvKkk8P5L415DEVVddddVVV1111VVXXfU/EsFVV1111VVX/S8WEbdO03Srbf4ltvmX2Ob5sc2/xDb3s41tnh/b2MY2trENgG3+LSTx30kSXdc9mKuuuuqqq6666qqrrrrqfyKCq6666qqrrvpfrrV2q21sY5v72eb5sc39bPPcbPPC2OaFsc1zs41tbPP82OZ+tvm3ksS/hyReVJK4nySuuuqqq6666qqrrrrqqv+RCK666qqrrrrqf7nM5IFsYxsA2wDY5l/DNs/NNg9kG9vY5n62uZ9tbGObB7KNbWwDYJv72eY/iySeH0m8MJK4nyQkcT9JAPR9/2Cuuuqqq6666qqrrrrqqv+JCK666qqrrrrqf7nMvNU2trHNc7PNc7PN/Wzz/NjmBbHNA9nmfraxzQPZxja2eSDb3M82/1aSkMTzIwlJAEhCEi8KSbwgkrifJK666qqrrrrqqquuuuqq/7EIrrrqqquuuup/udbarbZ5Udjm+bHN82ObB7LNC2KbB7KNbWzzQLaxjW3uZ5sHss1/Jkk8kCT+JZK46qqrrrrqqquuuuqqq/7XIbjqqquuuuqq/+UyE9vYxja2AbDNC2ObB7LN82ObF5VtAGzz3GxjmweyjW3uZxvbANjm30sS/1qS+NeazWYP5qqrrrrqqquuuuqqq676n4jgqquuuuqqq/6Xk/Q7trHN/WwDYJv72QbANi+IbZ4f29zPNgC2sY1tbHM/29zPNraxzf1sYxvb3M82tnlhbGOb/yiSuOqqq6666qqrrrrqqqv+zyO46qqrrrrqqv/lbJOZ2MY2tnkg29jm+bHNc7PNv4VtHsg2D2Qb2zyQbWzzgtjGNrb515LEv0QS95PEc5PECyIJSUii7/sHc9VVV1111VVXXXXVVVf9T0Rw1VVXXXXVVf/LRcSttnkg29jm38o2z80297PN82MbANvczza2uZ9tbGOb52YbANv8d5LEA0nihZHEVVddddVVV1111VVXXfU/EsFVV1111VVX/R9gG9vY5oWxDYBt7meb58c2z802/xLbANjGNvezjW0eyDa2sY1tAGzzv1Ep5cFcddVVV1111VVXXXXVVf/TEFx11VVXXXXV/3IRces0TbfaBsA297PNi8I2z49tXhjb2MY2trmfbe5nG9vczza2sc1/Fkk8N0lI4rlJ4n6S+JdI4qqrrrrqqquuuuqqq676X4Pgqquuuuqqq/4PmKbpVtvYBsA2tgGwjW1s80C2eSDbPD+2eSDbANjmudnmgWxzP9vY5oFsA2AbANvczzb/USRxP0n8W0kCQBL3k4QkSikP5qqrrrrqqquuuuqqq676n4bgqquuuuqqq/4PyExsA2CbF8Y2/1q2eVHZBsA297PN/WxjG9sA2AbANgC2+Y8kiecmiQeSxHOTBIAkXhBJXHXVVVddddVVV1111VX/oxFcddVVV1111f8Btm+1jW3+NWzzQLaxzfNjm/vZ5n62sc0D2eZ+trmfbV4UtnlBbPM/gSQeSBJXXXXVVVddddVVV1111f84BFddddVVV131f0Br7Vbb2AbANgC2eSDbANjmhbHNi8I297ONbR7INgC2sQ2AbWxjG9vYxjYAtnkg2/xrSeJFIYnnRxLPjySeH0lIotb6YK666qqrrrrqqquuuuqq/2kIrrrqqquuuur/gNYatgGwDYBtAGwDYJvnxzbPj22em23uZ5vnxzYAtgGwzf1s84LY5j+aJF4YSdxPEv8ekrjqqquuuuqqq6666qqr/schuOqqq6666qr/AyLid2xjm+fHNi+MbZ4f2zw32/xLbANgm/vZBsA2trGNbWxjm/vZBsA2ALb536Drugdx1VVXXXXVVVddddVVV/1PQ3DVVVddddVV/wfYxja2sY1tAGzz3GwDYJsXhW1eGNvYxja2uZ9t7mcbANu8ILaxDYBt/qtI4rlJAkASAJJ4YSQhiauuuuqqq6666qqrrrrqfxyCq6666qqrrvo/ICJutQ2AbQBs869hmxfENg9kGwDbPDfbPJBtAGwDYJv72eZFYZt/LUk8kCQkIYkXRBL/EklIAkAS95PEVVddddVVV1111VVXXfU/DsFVV1111VVX/R+RmdgGwDb3s839bPNAtnkg27wgtnlR2QbANgC2AbANgG1sA2Ab2/xHkMTzI4kHksR/FEkA9H3/YK666qqrrrrqqquuuuqq/2kIrrrqqquuuur/gIi4tbV2q21scz/bANjGNvezzQtimxfENvezzQtjGwDbANgGwDb3s839bANgm/vZ5j+LJO4niReFJO4niftJ4qqrrrrqqquuuuqqq676H4ngqquuuuqqq/6PmKbpVtvczzYvCts8N9u8qGxjG9vYxjb3sw2AbQBsA2Ab2wDYxjYAtgGwjW0eyDb/FpL4t5AEgCReFH3fP5irrrrqqquuuuqqq6666n8agquuuuqqq676PyIzsY1tbPOC2AbANvezzXOzzfNjm/vZ5vmxzQtim/vZ5r+TJJ6bJK666qqrrrrqqquuuuqq/zMIrrrqqquuuur/CNu32uZ+tgGwzb+VbWzz3GzzL7ENgG0AbHM/29gGwDYAtrGNbR7INv9akvjXksQLI4nnJon7zWazB3PVVVddddVVV1111VVX/U9DcNVVV1111VX/R7TWbrWNbWwDYBsA29jGNi+IbV4Q2/xLbGMb29zPNgC2AbDN82Ob/wyS+JdI4t9DEpK46qqrrrrqqquuuuqqq/5HIrjqqquuuuqq/yMy8xm2sc2/xDYAtnkg27wgtnkg2wDYxjYPZJv72QbANgC2sY1tbHM/29zPNraxzX8kSUjiqquuuuqqq6666qqrrvp/g+Cqq6666qqr/o+QdKttAGxjGwDb/GvY5gWxzYvKNvezDYBtnpttbANgG9u8ILZ5QSTxwkjifpJ4fiQBIAkASQBI4n6SkMRzm81mD+aqq6666qqrrrrqqquu+p+G4Kqrrrrqqqv+j7BNZmKb+9nmudnmgWzz3GzzgtjmfrZ5YWzz3GxjGwDbvChs8+8hiecmiftJ4l9LEveThCSuuuqqq6666qqrrrrqqv9xCK666qqrrrrq/4iIuBXANrZ5INvYxjb3s80LY5t/DdvYxja2uZ9tAGxjm/vZBsA2ALa5n21eGNv8TyEJANuUUh7MVVddddVVV1111VVXXfU/CcFVV1111VVX/R8REbdmJvezDYBt/iW2eX5s8/zY5oFs89xscz/b3M8297MNgG0AbPPcbPOfRRL/GpJ4IEncTxJXXXXVVVddddVVV1111f84BFddddVVV131f8g0TbfaxjYAtnl+bANgm/vZ5vmxzfNjGwDbvCC2uZ9t7mcb2zw/tgGwjW3+tSQBIAkASbwoJAEgCQBJAEjiRVVrfTBXXXXVVVddddVVV1111f8kBFddddVVV131f0hr7VbbANjmfrZ5Udjm+bGNbf4tbHM/2zw329jGNv8VJPFAkvj3koQkrrrqqquuuuqqq6666qr/cQiuuuqqq6666v8Q29jGNgC2uZ9tAGzzQLZ5UdnmgWxzP9vYxja2sc39bHM/29jGNrZ5INsA2Oa52ebfSxIAkvjXksRVV1111VVXXXXVVVdd9b8OwVVXXXXVVVf9H9Jau9U2trENgG3uZ5v72eb5sc0LY5vnZpvnxza2AbCNbZ6bbR7INv8ZJPFAknhukgCQxL9F13UP5qqrrrrqqquuuuqqq676n4Tgqquuuuqqq/4Paa3dapt/Lds8kG1s84LY5n62+ZfY5n62sY1tbANgG9s8kG3uZ5v/TJJ4fiTx/EhCEgCSAJCEJK666qqrrrrqqquuuuqq/1EIrrrqqquuuur/ENvPsI1tbGMbANs8kG1eFLb517CNbWxjmweyzb/ENg9kG9s8kG1eVJIAkMTzI4kXhSTuJ4nnJgmArusexFVXXXXVVVddddVVV131PwnBVVddddVVV/0fIulW29jmfrYBsA2Abe5nm/vZ5vmxzfNjmweyzXOzjW3uZ5vnZhvb2AbANrb5ryaJfy1JPJAkrrrqqquuuuqqq6666qr/UQiuuuqqq6666v8QSbdmJgC2eW62eWFs8/zYxjbPzTYAtnlhbHM/29jGNrb57yaJB5IEgCSemyReEElI4qqrrrrqqquuuuqqq676H4Xgqquuuuqqq/6PsY1tAGwDYJsXxDYvKtu8qGzzQLZ5fmxzP9vczzbPzTYvCkk8P5KQhCReVJJ4UXVd92Cuuuqqq6666qqrrrrqqv9JCK666qqrrrrq/5CIuDUzsY1tAGzz/Njm+bHNC2ObB7LN/WxjG9sA2MY297ONbWxjG9sA2MY2ALaxzX8USTw/kviPIIn7SeKqq6666qqrrrrqqquu+h+F4Kqrrrrqqqv+j7F9q20AbHM/29zPNg9kmweyzQtjm+dmmxfENv8Wtrmfbf49JPHcJAEgCQBJAEjiuUniBZEEQN/3D+aqq6666qqrrrrqqquu+p+E4Kqrrrrqqqv+jxnH8Vbb2AbANrYBsI1t7mebF8Q2tnlBbHM/2/xLbGObB7KNbWwDYJvnZhvb/E8iCUk8kCSuuuqqq6666qqrrrrqqv9xCK666qqrrrrq/xjb2AbANi8q2zw/tnlBbPPcbGMb29jGNg9kG9vY5oFsA2AbANv8d5PECyOJB5rNZg/mqquuuuqqq6666qqrrvqfhOCqq6666qqr/o+ZpulW29jmgWzzQLYBsM39bPP82OZFYZvnxza2eX5s89xs8+8liftJ4gWRBIAkACTx3CRxP0lcddVVV1111VVXXXXVVf9rEFx11VVXXXXV/zGZeSuAbQBs8x/BNrZ5brYBsM2/xDa2sY1tbANgG9vY5oFs8x9NEpKQxH8kSVx11VVXXXXVVVddddVV/+MQXHXVVVddddX/MbafkZkA2AbANgC2sY1tXhDbvDC2eVHYxja2+Z9CEs+PJAAkcT9JvCgkIQmA2Wz2YK666qqrrrrqqquuuuqq/0kIrrrqqquuuur/GEm32sY2/xLbANjmgWzzwtjmgWxzP9vY5oFsY5vnZhvbPJBtbGMbANv8W0nihZHEv0QS95PECyOJq6666qqrrrrqqquuuup/FIKrrrrqqquu+j9G0q22sY1tbANgm38N27wwtnlutnlhbGMb29jmfraxjW2eH9s8kG3+tSTxopLEv4VtSikP5qqrrrrqqquuuuqqq676n4Lgqquuuuqqq/4Pss0D2ea52eaBbPPcbGObF8Q297PNv4VtXhS2sY1tAGzz3CTx3CTxwkgCQBIvjCReGElI4qqrrrrqqquuuuqqq676H4Xgqquuuuqqq/6PiYhbbWMb29jmfrYBsM39bHM/2zw/tnlBbPPcbGMb29jGNraxzQPZBsA297PN/WzzH00SkpDE8yOJ+0ni+ZGEJCTx3GqtD+aqq6666qqrrrrqqquu+p+C4Kqrrrrqqqv+D5qm6VbbPD+2+bewjW3+JbZ5YWxjG9s8kG1sA2Ab2/xHkQSAJB5IEgCS+PeQxFVXXXXVVVddddVVV131PxLBVVddddVVV/0f1Fq71Ta2AbCNbV4UtnlhbPPcbANgm38t27wwtvmvIon7SeJ+krifJF4QSVx11VVXXXXVVVddddVV/6MQXHXVVVddddX/Qba5n21eENsA2OaBbPPC2MY2/xLb2MY2trGNbWxjG9sA2OZ+tnlR2ebfSxL/HpIAkASAJK666qqrrrrqqquuuuqq/zEIrrrqqquuuur/oNbarbaxzQPZ5n62eWFs8y+xzf1scz/b2OZFYRsA29gGwDa2sQ2Abf69JHE/STw3SdxPEveTxL9G13UP5qqrrrrqqquuuuqqq676n4Lgqquuuuqqq/4PysxbbXM/29gGwDa2eW62eW62+deyzYvKNi8q2/xHkASAJO4niftJ4gWRxAsjia7rHsRVV1111VVXXXXVVVdd9T8FwVVXXXXVVVf9H9Rawza2sc0LY5sXxjYvjG3uZ5vnZhvb2MY2trGNbe5nG9vYxjYPZJv72ebfQxIPJIkXRhL/WhHBVVddddVVV1111VVXXfU/BsFVV1111VVX/R8UEb9jG9v8a9jm+bGNbV4Q2zw329jmX2Kb52abF8Q2LwpJSEISL4wk7ieJF0QSDySJ+0nifl3XPZirrrrqqquuuuqqq6666n8Kgquuuuqqq676P8g2mYltbGMb29jmgWwDYJv72eYFsc0LYpv72eZFYRsA2zw329jmX0sSknggSfxLJPFAkviXSOJ+kpDEbDZ7MFddddVVV1111VVXXXXV/xQEV1111VVXXfV/UETcahsA2zyQbf49bGObF8Q2z802trGNbWxjmweyjW1s89xs80C2+beShCQk8YJI4oEk8UCSuJ8kHmhjY+PBXHXVVVddddVVV1111VX/UxBcddVVV1111f9BEXFrZmIbANs8kG1s84LY5l9iG9v8S2zzwtjmudnmRWWbF4UknpskACTxH6W1xlVXXXXVVVddddVVV131PwbBVVddddVVV/0fNQzDb9vGNgC2sc1zsw2AbR7INi8K29zPNvezjW1eENvYBsA2z802trENgG3+K0jigSTxQJJ4bpKQhCRms9mDueqqq6666qqrrrrqqqv+pyC46qqrrrrqqv+jMpPMBMA297PNi8o2/xa2eX5sYxvbPDfb2MY2Lwrb/GtJ4rlJ4n6S+I8wm81em6uuuuqqq6666qqrrrrqfwKCq6666qqrrvo/KjNvtY1tAGxzP9vYxjYPZJvnZhvbvDC2eWFsY5vnxzYvKtv8V5LEA0nihZGEJDY2Nl6Lq6666qqrrrrqqquuuup/AoKrrrrqqquu+j+qtXZrZmIb2wDY5vmxzf1s8/zYxjYviG0AbHM/29jm+bGNbQBs80C2eSDb/GeTxL+WJO4nCQBJbG9vvzZXXXXVVVddddVVV1111f8EBFddddVVV131f9fv2MY2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rrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V/GPBgdzx+zfmPsAAAAASUVORK5CYII=) +```js +// Create a spring by sweeping around a helix path. + + +// Create a helix around the Z axis. +helixPath = helix({ + angleStart = 0, + ccw = true, + revolutions = 16, + length = 10, + radius = 5, + axis = 'Z' +}) + +// Create a spring by sweeping around the helix path. +springSketch = startSketchOn('YZ') + |> circle({ center = [0, 0], radius = 1 }, %) +// |> sweep({ path = helixPath }, %) +``` + +![Rendered example of sweep 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAALZQ0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqr/se55pprHswznTlz5sE80zXXXPNgnunMmTMP4pmuueaaB/NM11xzzYN5pjNnzjwY4Jprrnkwz/R2b/d24qqrrrrqqquuuuqq/y+oXHXVVVddddVVV131b3bNNdc8GODMmTMPPnv27K0v9mIv9to805kzZx7EM11zzTUP5pmuueaaB/NMZ86ceTDANddc82Cuuuqqq6666qqrrrrqPx6Vq6666qqrrrrqqque5ZprrnkwwJkzZx4McM011zz4zJkzDwK45pprHnzNNdc8GODMmTMPvuaaax7Mf5L77rvvVp7p7Nmzt/JM9913360803333Xcrz3T27Nln8Ez33XffrTzT2bNnbwW47777buWqq6666qqrrrrqqv+PqFx11VVXXXXVVVf9H3bNNdc8GODMmTMPvuaaax585syZB/FM11xzzYOvueaaBwO82Iu92Gvzb3DffffdCnD27NlbAe67775beab77rvvVp7p7Nmzz+CZ7rvvvlt5prNnz97KM9133323ctVVV1111VVXXXXVVf+xqFx11VVXXXXVVVf9L3PNNdc8+MyZMw++5pprHnzmzJkH8UzXXHPNg6+55poHnzlz5sHXXHPNg/k3uO+++24FOHv27K0A991336333XffrQBnz559xn333XcrwNmzZ2+97777buWqq6666qqrrrrqqqv+Z6Ny1VVXXXXVVVdd9T/MNddc82CAF3uxF3vtM2fOPAjgxV/8xV/7zJkzD77mmmsezL/CfffddyvA2bNnb73vvvtuBbjvvvtuBTh79uwz7rvvvlsBzp49e+t99913K1ddddVVV1111VVXXfV/C5Wrrrrqqquuuuqq/2LXXHPNgwHOnDnz4Bd7sRd7LYAXf/EXf22AF3uxF3tt/gX33XffrWfPnr31vvvuu/W+++67lWc6e/bsM+67775bz549e+t99913K1ddddVVV1111VVXXXUVlauuuuqqq6666qr/BNdcc82Dz5w58+BrrrnmwWfOnHnQNddc8+BrrrnmwS/2Yi/22vwL7rvvvlsB/uEf/uG377vvvlsB/uEf/uF3zp49e+t99913K1ddddVVV1111VVXXXXVi4rKVVddddVVV1111b/BNddc82CAF3uxF3vtM2fOPAjgxV/8xV/7zJkzD77mmmsezL/gvvvuu/Xs2bO3/v3f//1vA/zDP/zD7wD8wz/8w29z1VVXXXXVVVddddVVV/1HoXLVVVddddVVV131L7jmmmse/GIv9mKvfebMmQe9+Iu/+Gu/2Iu92GvzL7jvvvtuPXv27K333Xffrffdd9+tZ8+efcZ999136z/8wz/8NlddddVVV1111VVXXXXVfxUqV1111VVXXXXVVQ9wzTXXPPi1X/u13wvgxV/8xV/7xV7sxV6b5+O+++67FeAf/uEffvu+++67FeAf/uEffufs2bO33nfffbdy1VVXXXXVVVddddVVV/1PQOWqq6666qqrrvp/6ZprrnnwmTNnHvxiL/ZirwXw4i/+4q/9Yi/2Yq/N83Hffffdevbs2Vv//u///rf/4R/+4Xf+4R/+4be56qqrrrrqqquuuuqqq/43oHLVVVddddVVV/2fd8011zz4zJkzD36xF3ux13rxF3/x136xF3ux1+YFuO+++279h3/4h9++7777bv2Hf/iH3/mHf/iH3+aqq6666qqrrrrqqquu+t+KylVXXXXVVVdd9X/KNddc8+AXe7EXe+0zZ8486MVf/MVf+8Ve7MVemxfgvvvuu/W3fuu3vhvgH/7hH37nH/7hH36bq6666qqrrrrqqquuuur/EipXXXXVVVddddX/Wtdcc82Dz5w58+AXe7EXe60Xf/EXf+0Xe7EXe22ej/vuu+/Ws2fP3vr3f//3vw3wD//wD7/zD//wD7/NVVddddVVV1111VVXXfV/HZWrrrrqqquuuup/lWuuuebBr/3ar/1eL/7iL/7aL/ZiL/baPJf77rvv1rNnz97693//97/9D//wD7/zD//wD7/NVVddddVVV1111VVXXfX/FZWrrrrqqquuuup/tGuuuebBr/3ar/1e11xzzYNf53Ve5715Lvfdd9+tv/Vbv/Xd//AP//A7//AP//DbXHXVVVddddVVV1111VVXPRuVq6666qqrrrrqf5RrrrnmwWfOnHnwi73Yi73W67zO67z3Nddc82Ae4L777rv1t37rt7777Nmzz/it3/qt7+aqq6666qqrrrrqqquuuuoFo3LVVVddddVVV/23u+aaax782q/92u/14i/+4q/9Yi/2Yq/NA9x33323nj179ta///u//+0f/dEf/Ryuuuqqq6666qqrrrrqqqtedFSuuuqqq6666qr/ctdcc82DX/u1X/u9XvzFX/y1X+zFXuy1eS733Xffrb/1W7/13f/wD//wO//wD//w21x11VVXXXXVVVddddVVV/3bULnqqquuuuqqq/7TXXPNNQ9+sRd7sdc+c+bMg97pnd7ps3ku9913362/9Vu/9d3/8A//8Dv/8A//8NtcddVVV1111VVXXXXVVVf9x6By1VVXXXXVVVf9p7nmmmse/I7v+I6f9Tqv8zrvzQPcd999t/7Wb/3WdwP86I/+6Odw1VX/gmuuuebBPNOZM2cezDNdc801DwY4c+bMg3iAa6655sEA11xzzYN5pjNnzjyYf4VrrrnmwfwPcN99993KA5w9e/ZWgPvuu+9WHuC+++67FeDs2bPP4AHuu+++W3mms2fP3soz3Xfffbdy1VVXXXXVVVdd9X8fetCDHsRVV1111VVXXfUf55prrnnwa7/2a7/XO73TO302D3Dffffd+lu/9Vvf/du//dvfc999993KVf/nXHPNNQ/mmc6cOfNgnumaa655MMCZM2cexANcc801Dwa45pprHswznTlz5sE80zXXXPNgrvpPd999993KA5w9e/ZWnum+++67lWe67777bj179uwzAO67775bz549e+t99913K1ddddVVV1111VX/s6EHPehBXHXVVVddddVV/37v+I7v+Fkv/uIv/tov9mIv9to803333Xfrb/3Wb333j/7oj34OV/2vdM011zwY4MyZMw++5pprHnzmzJkHAVxzzTUPvuaaax4M8GIv9mKvzX+y++6771ae6ezZs7fyTPfdd9+tAPfdd9+tPMDZs2efAXDffffdyjOdPXv2Vv4V7rvvvlv5H+Caa655MM905syZB/NM11xzzYN5gDNnzjwI4JprrnkwD3DNNdc8mGc6c+bMg3mma6655sH8B7jvvvtuBTh79uyt9913360A9913361nz559BsB9991369mzZ2+97777buWqq6666qqrrrrqvx560IMexFVXXXXVVVdd9W9zzTXXPPi1X/u13+ud3umdPpsH+JEf+ZHP/od/+Iff+Yd/+Iff5qr/ca655poHA5w5c+bB11xzzYPPnDnzIIBrrrnmwddcc82DAV7sxV7stflXuu+++27lmc6ePXsrz3TffffdCnDffffdygOcPXv2GQD33XffrTzT2bNnb+WZ7rvvvlu56j/dNddc82Ae4MyZMw/mma655poH80xnzpx50DXXXPNggGuuuebBZ86cefA111zzYP4V7rvvvlsBzp49e+t99913K8B9991369mzZ59x33333Qpw9uzZW++7775bueqqq6666qqrrvqPgR70oAdx1VVXXXXVVVe96K655poHv/Zrv/Z7vc7rvM57X3PNNQ/mme67775bf+u3fuu7f/RHf/RzuOq/3DXXXPNggDNnzjz4mmuuefCZM2ceBHDNNdc8+JprrnnwmTNnHnzNNdc8mH+l++6771aAs2fP3nrffffdet99990KcPbs2Wfcd999twKcPXv21vvuu+9Wrvp/6ZprrnkwwJkzZx58zTXXPBjgzJkzD7rmmmsefM011zwY4MyZMw++5pprHsy/wn333XcrwNmzZ2+97777br3vvvtuPXv27DPuu+++W//hH/7ht7nqqquuuuqqq6560aAHPehBXHXVVVddddVV/7Jrrrnmwa/92q/9Xu/0Tu/02TzTfffdd+tv/dZvffdv//Zvf8999913K1f9p7nmmmsefObMmQe/2Iu92GsBvPiLv/hrnzlz5sHXXHPNg/lXuu+++24FOHv27K333Xffrffdd9+tAGfPnn3GfffddyvAP/zDP/w2V131H+yaa655MMCZM2cefM011zwY4MyZMw+65pprHnzNNdc8GODMmTMPvuaaax7Mv+C+++679ezZs7fed999t/7DP/zD79x33323AvzDP/zDb3PVVVddddVVV131bOhBD3oQV1111VVXXXXV83fNNdc8+LVf+7Xf63Ve53Xe+5prrnkwz3Tffffd+lu/9Vvf/aM/+qOfw1X/Ya655poHnzlz5sEv9mIv9loAL/7iL/7aZ86cefA111zzYP4F9913360AZ8+evfW+++679b777rsV4OzZs8+47777bj179uyt9913361cddX/Etdcc82DAc6cOfPga6655sEAL/ZiL/Za11xzzYNf7MVe7LV5Ae67775bAf7hH/7htwH+4R/+4Xfuu+++W//hH/7ht7nqqquuuuqqq/4/Qg960IO46qqrrrrqqque0zXXXPPgd3zHd/ys13md13lvnum+++679bd+67e++7d/+7e/57777ruVq/5NrrnmmgefOXPmwS/2Yi/2WgAv/uIv/tpnzpx58DXXXPNgXoj77rvv1rNnz97693//978N8A//8A+/c/bs2Vvvu+++W7nqqv+HrrnmmgefOXPmwddcc82DX+zFXuy1rrnmmgefOXPmwddcc82DeQHuu+++W8+ePXvrfffdd+s//MM//M59991369mzZ2+97777buWqq6666qqrrvq/Cj3oQQ/iqquuuuqqq6664pprrnnwa7/2a7/XO73TO302z/Rbv/Vb3/0P//APv/Nbv/Vb381VL5JrrrnmwWfOnHnwi73Yi70WwIu/+Iu/9pkzZx58zTXXPJgX4r777rv17Nmzt/793//9bwP8wz/8w++cPXv21vvuu+9WrrrqqhfJNddc82CAF3uxF3ttgBd7sRd7rWuuuebBL/ZiL/bavAD33XffrQD/8A//8NsA//AP//A79913363/8A//8NtcddVVV1111VX/26EHPehBXHXVVVddddVV8I7v+I6f9U7v9E6fzTP9yI/8yGf/6I/+6Odw1fN1zTXXPBjgtV/7td8L4MVf/MVf+8yZMw++5pprHswLcd9999169uzZW//+7//+twH+4R/+4XfOnj1763333XcrV1111X+qa6655sFnzpx58DXXXPPgF3uxF3uta6655sFnzpx58DXXXPNgno/77rvv1rNnz97693//97/9D//wD7/zD//wD7/NVVddddVVV131vw160IMexFVXXXXVVVf9f3bNNdc8+MM//MO/68Ve7MVeG+Af/uEffvvrv/7r3+e+++67lasuu+aaax4M8Nqv/drvdc011zz4dV7ndd6bF+K+++679ezZs7f+/d///W8D/MM//MPvAPzDP/zDb3PVVVf9j3PNNdc8GODFXuzFXvvMmTMPuuaaax58zTXXPPjFXuzFXpsHuO+++24F+Id/+Iff/od/+Iff+a3f+q3v5qqrrrrqqquu+p8OPehBD+Kqq6666qqr/j+65pprHvzar/3a7/VO7/ROnw1w33333fqjP/qjn/Nbv/Vb383/c9dcc82DX/u1X/u9AF78xV/8tV/sxV7stXku9913360Av/Vbv/XdAP/wD//wOwD/8A//8NtcddVV/ydcc801D36xF3ux136xF3ux17rmmmse/GIv9mKvzXO57777bv2Hf/iH3/6Hf/iH37nvvvtu/Yd/+Iff5qqrrrrqqquu+p8EPehBD+Kqq6666qqr/r95x3d8x896p3d6p8/mmX7kR37ks3/0R3/0c/h/6Jprrnnwi73Yi732mTNnHvTiL/7ir/1iL/Zir83zcd999936W7/1W98N8A//8A+/8w//8A+/zVVXXfX/yjXXXPPgM2fOPPjFXuzFXuvFX/zFX/vFXuzFXpvnct999936D//wD7/9D//wD79z33333foP//APv81VV1111VVXXfXfCT3oQQ/iqquuuuqqq/6/uOaaax78OZ/zOb91zTXXPBjgH/7hH37767/+69/nvvvuu5X/B6655poHnzlz5sEv9mIv9lov/uIv/tov9mIv9to8H/fdd9+t//AP//Db9913363/8A//8Dv/8A//8NtcddVVVz2Xa6655sEAL/ZiL/baL/ZiL/Zar/M6r/PePJf77rvv1rNnz97693//97/9D//wD7/zD//wD7/NVVddddVVV131Xwk96EEP4qqrrrrqqqv+r7vmmmse/I7v+I6f9Tqv8zrvDXDffffd+vVf//Xv8w//8A+/zf9R11xzzYMBXvu1X/u9rrnmmge/zuu8znvzfNx33323nj179ta///u//+1/+Id/+J1/+Id/+G2uuuqqq/6Nrrnmmge/2Iu92Gu/2Iu92Gtdc801D36xF3ux1+YB7rvvvlsBfvRHf/Rz7rvvvlv/4R/+4be56qqrrrrqqqv+M6EHPehBXHXVVVddddX/Ze/4ju/4We/0Tu/02TzTj/zIj3z2j/7oj34O/8dcc801D37t137t9wJ48Rd/8dd+sRd7sdfmudx33323AvzWb/3Wd589e/YZv/Vbv/XdXHXVVVf9J7rmmmse/GIv9mKv/WIv9mKvdc011zz4xV7sxV6bB7jvvvtu/a3f+q3v/od/+Iff+Yd/+Iff5qqrrrrqqquu+o+GHvSgB3HVVVddddVV/1d97ud+7m+92Iu92GsD/MM//MNvf/3Xf/373Hfffbfyf8Q111zz4Nd+7dd+r9d5ndd572uuuebBPJf77rvv1t/6rd/6boB/+Id/+J1/+Id/+G2uuuqqq/4bXXPNNQ8+c+bMg1/ndV7nvV7ndV7nvXmA++6779bf+q3f+u7f/u3f/p777rvvVq666qqrrrrqqv8I6EEPehBXXXXVVVdd9X/R537u5/7Wi73Yi732fffdd+vXf/3Xv88//MM//Db/y11zzTUPPnPmzINf7MVe7LXe6Z3e6bN5gPvuu+/Ws2fP3vr3f//3v/0P//APv/MP//APv81VV1111f9g11xzzYNf7MVe7LVf7MVe7LVe53Ve5715gH/4h3/47d/6rd/6nt/6rd/6bq666qqrrrrqqn8P9KAHPYirrrrqqquu+r/mwz/8w7/rdV7ndd4b4DM/8zNf5x/+4R9+m/+lrrnmmge/9mu/9nu9+Iu/+Gu/2Iu92GvzAPfdd9+tv/Vbv/Xd//AP//A7//AP//DbXHXVVVf9L3XNNdc8+MVe7MVe+8Ve7MVe63Ve53Xem2e67777bv2Hf/iH3/6Hf/iH3/mt3/qt7+aqq6666qqrrvrXQg960IO46qqrrrrqqv9L3vEd3/Gz3umd3umzAT7zMz/zdf7hH/7ht/lf5pprrnnwa7/2a7/X67zO67z3Nddc82Ae4L777rv1t37rt777t3/7t7/nvvvuu5Wrrrrqqv9jrrnmmge/2Iu92Gu/zuu8znu92Iu92GvzTPfdd9+t//AP//Db//AP//A7v/Vbv/XdXHXVVVddddVVLwr0oAc9iKuuuuqqq676v+LFXuzFXvtzP/dzfwvgMz/zM1/nH/7hH36b/wWuueaaB585c+bBL/ZiL/Za7/RO7/TZPMB9991369mzZ2/9+7//+9/+0R/90c/hqqv+Da655poH80xnzpx5MP9LnD179laA++6771au+n/pmmuuefCLvdiLvfbrvM7rvNeLvdiLvTbPdN999936D//wD7/9W7/1W9/zD//wD7/NVVddddVVV131gqAHPehBXHXVVVddddX/BS/2Yi/22p/7uZ/7WwBf//Vf/z6/9Vu/9d38D3bNNdc8+LVf+7Xf68Vf/MVf+8Ve7MVemwe47777bv2t3/qt7/6Hf/iH3/mHf/iH3+aq/zeuueaaB/NMZ86ceTDPdM011zwY4MyZMw/iAa655poHA1xzzTUP5pnOnDnzYIBrrrnmwfwfc999993KM509e/ZWnum+++67lWe67777bj179uwzeKb77rvvVp7p7NmztwLcd999t3LV/zrXXHPNg1/7tV/7vV78xV/8tV/sxV7stXmmf/iHf/jtv//7v//tH/3RH/0crrrqqquuuuqq54Ye9KAHcdVVV1111VX/273Yi73Ya3/u537ubwH8yI/8yGf/6I/+6OfwP9A111zz4Nd+7dd+r9d5ndd572uuuebBPMB9991362/91m9992//9m9/z3333XcrV/2vcc011zwY4MyZMw++5pprHgxw5syZB/EA11xzzYMBrrnmmgfzTGfOnHkwwDXXXPNg/pPdd999t/JMZ8+evZX/Bc6cOfNgnumaa655MP9J7rvvvlt5prNnz94KcN99993KM9133323nj179hkA9913361nz5699b777ruVq/5bXXPNNQ9+7dd+7fd68Rd/8dd+sRd7sdcGuO+++2790R/90c/5rd/6re/mqquuuuqqq666H3rQgx7EVVddddVVV/1vds011zz4m77pm54O8A//8A+//Zmf+Zmvw/8w7/iO7/hZr/M6r/Pe11xzzYN5pvvuu+/Ws2fP3vr3f//3v/2jP/qjn8NV/+Ncc801DwY4c+bMg6+55poHnzlz5kEAL/7iL/7aAGfOnHnwNddc82Ae4L777rv1mmuueTD/Rvfdd9+tPNPZs2dv5Znuu+++WwHuu+++W3mAs2fPPgPgvvvuu5VnOnv27K0A99133638H3PNNdc8mGc6c+bMgwGuueaaB/MAZ86cedA111zzYJ7pmmuueTDPdObMmQcDXHPNNQ/m3+m+++67FeDs2bO33nfffbfed999t549e/YZ9913360AZ8+evfW+++67lav+073O67zOe7/jO77jZ11zzTUPBrjvvvtu/fqv//r3+Yd/+Iff5qqrrrrqqquuQg960IO46qqrrrrqqv+trrnmmgd/+Id/+He92Iu92Gv/wz/8w29/5md+5uvwP8Q111zz4Nd+7dd+r3d6p3f6bJ7pvvvuu/W3fuu3vvsf/uEffucf/uEffpur/stdc801DwY4c+bMg6+55poHnzlz5kEA11xzzYOvueaaBwO82Iu92Gvzr3DffffdCnD27Nlb77vvvlsB7rvvvlt5gLNnzz4D4L777ruVZzp79uytAPfdd9+tXPXf5pprrnkwz3TmzJkHA1xzzTUP5pnOnDnzoGuuuebBANdcc82Dz5w58+BrrrnmwbyI7rvvvlvPnj1763333XcrwD/8wz/8DsB9991369mzZ2+97777buWqf7drrrnmwa/92q/9Xq/zOq/z3tdcc82DAX7rt37ru3/0R3/0c+67775bueqqq6666qr/v9CDHvQgrrrqqquuuup/qw//8A//rtd5ndd573/4h3/47c/8zM98Hf4HuOaaax782q/92u/1Tu/0Tp/NM9133323/tZv/dZ3/+iP/ujncNV/imuuuebBAGfOnHnwNddc8+AzZ848COCaa6558DXXXPPgM2fOPPiaa655MP8K9913360AZ8+evfW+++679b777rsV4OzZs8+47777bj179uyt9913361c9f/SNddc82CAM2fOPPiaa6558JkzZx50zTXXPPiaa655MMCLvdiLvTYvovvuu+9WgLNnz95633333Xrffffdevbs2Wfcd999twL8wz/8w29z1YvkmmuuefBrv/Zrv9c7vdM7fTbAfffdd+s//MM//PaP/uiPfs599913K1ddddVVV131/w960IMexFVXXXXVVVf9b/UTP/ETBni7t3s78d/sdV7ndd77Hd/xHT/rmmuueTDPdN999936oz/6o5/zW7/1W9/NVf9u11xzzYPPnDnz4Bd7sRd7LYAXf/EXf+0zZ848+Jprrnkw/wr33XffrWfPnr31vvvuu/W+++67FeDs2bPPuO+++24F+Id/+Iff5qqr/gNcc801DwY4c+bMg6+55poHA7zYi73YawFcc801Dz5z5syDr7nmmgfzQtx33323XnPNNQ++7777bv2Hf/iH3wb4h3/4h9+57777bv2Hf/iH3+aq5+uaa6558Gu/9mu/1zu90zt9NsB9991362/91m9994/+6I9+DlddddVVV131/wt60IMexFVXXXXVVVf9b/Q6r/M67/3hH/7h3/Vbv/Vb3/31X//178N/g2uuuebBr/3ar/1er/M6r/Pe11xzzYMB7rvvvlt/67d+67t/+7d/+3vuu+++W7nqX+Waa655MMCLvdiLvfaZM2cedM011zz4mmuuefCLvdiLvTYvxH333XcrwNmzZ2+97777br3vvvtuBTh79uwz7rvvvlvPnj1763333XcrV131P9A111zzYIAzZ848+JprrnnwmTNnHnTNNdc8+JprrnkwwIu92Iu9Ns/HfffddyvAP/zDP/z2P/zDP/zOfffdd+vZs2dvve+++27lqsuuueaaB7/2a7/2e73TO73TZwPcd999t/7Wb/3Wd//oj/7o53DVVVddddVV/z+gBz3oQVx11VVXXXXV/0av8zqv894f/uEf/l2/9Vu/9d1f//Vf/z78F7rmmmse/Nqv/drv9U7v9E6fzTPdd999t/7Wb/3Wd//oj/7o53DVv+iaa6558JkzZx78Yi/2Yq8F8OIv/uKv/WIv9mKvzQtx33333Xr27Nlb//7v//63Af7hH/7hd86ePXvrfffddytXXfV/2DXXXPNggBd7sRd77TNnzjzommuuefA111zz4Bd7sRd7bZ6P++6779azZ8/eet999936D//wD79z33333foP//APv83/Y9dcc82DP/zDP/y7XuzFXuy1Ae67775bf+u3fuu7f/RHf/RzuOqqq6666qr/29CDHvQgrrrqqquuuup/ow//8A//rtd5ndd576//+q9/n9/6rd/6bv4LvNiLvdhrv87rvM57vc7rvM5780z33XffrT/6oz/6Ob/1W7/13Vz1PK655poHv9iLvdhrnzlz5kHXXHPNg6+55poHv9iLvdhr80Lcd999t/7DP/zDb9933323nj179hn33Xffrf/wD//w21x11VXP4ZprrnkwwIu92Iu99ou92Iu91jXXXPPgF3uxF3ttXoD77rvv1rNnz95633333foP//APv3Pffffd+g//8A+/zf8jL/ZiL/ba7/RO7/RZL/ZiL/ba9913363/8A//8Ntf//Vf/z5cddVVV1111f9d6EEPehBXXXXVVVdd9b/Rh3/4h3/X67zO67z313/917/Pb/3Wb303/0muueaaB7/2a7/2e73O67zOe19zzTUPBrjvvvtu/a3f+q3v/u3f/u3vue+++27l/7lrrrnmwQAv9mIv9tpnzpx50Iu/+Iu/9pkzZx58zTXXPJgX4L777rv17Nmzt/793//9bwP8wz/8w++cPXv21vvuu+9Wrrrqqn+Xa6655sFnzpx58DXXXPPgF3uxF3uta6655sEv9mIv9tq8APfdd9+t//AP//DbAL/1W7/1Pf/wD//w2/wf9zqv8zrv/eEf/uHfBfBbv/Vb3/31X//178NVV1111VVX/d+EHvSgB3HVVVddddVV/xt90zd909OvueaaB3/Ih3zIQ+67775b+U/wju/4jp/1Oq/zOu99zTXXPBjgvvvuu/W3fuu3vvtHf/RHP4f/x6655poHv/Zrv/Z7vfiLv/hrnzlz5sHXXHPNg3kB7rvvvlvPnj1769///d//NsA//MM//M4//MM//DZXXXXVf7lrrrnmwS/2Yi/22gAv9mIv9lrXXHPNg1/sxV7stXmA++6779Zrrrnmwffdd9+t//AP//Dbv/Vbv/U9//AP//Db/B90zTXXPPibvumbng7wIz/yI5/9oz/6o5/DVVddddVVV/3fgx70oAdx1VVXXXXVVf8b/cRP/IQBPuRDPuQh99133638B7rmmmse/OEf/uHf9WIv9mKvDXDffffd+qM/+qOf81u/9Vvfzf8z11xzzYPPnDnz4Bd7sRd7rRd/8Rd/7Rd7sRd7bZ7LfffddyvAP/zDP/z2fffdd+vZs2efcd999936D//wD7/NVVdd9T/aNddc82CAF3uxF3vtF3uxF3uta6655sEv9mIv9to8wH333Xfr2bNnb/37v//73/6Hf/iH3/mHf/iH3+b/iGuuuebB3/RN3/R0gB/5kR/57B/90R/9HK666qqrrrrq/xb0oAc9iKuuuuqqq6763+gnfuInDPB2b/d24j/QO77jO37WO73TO302wH333Xfr13/917/PP/zDP/w2/09cc801D37t137t9wJ4ndd5nfe+5pprHsxzue+++279rd/6re8G+NEf/dHP4aqrrvo/5ZprrnnwmTNnHvxiL/Zir/XiL/7ir/1iL/Zir80D3Hfffbf+wz/8w2//wz/8w+/cd999t/7DP/zDb/O/2DXXXPPgb/qmb3o6wI/8yI989o/+6I9+DlddddVVV131fwd60IMexFVXXXXVVVf9b/NiL/Zir/25n/u5v/UP//APv/2Zn/mZr8N/gGuuuebBH/7hH/5dL/ZiL/baAL/1W7/13V//9V//Pvwfd8011zz4tV/7td/rxV/8xV/7xV7sxV6b53Lffffdevbs2Vv//u///rf/4R/+4Xf+4R/+4be56qqr/l+55pprHvxiL/Zir/1iL/Zir3XNNdc8+MVe7MVemwe47777bv2Hf/iH3/6Hf/iH37nvvvtu/Yd/+Iff5n+Z13md13nvD//wD/8ugB/5kR/57B/90R/9HK666qqrrrrq/wYqV1111VVXXfW/0DXXXPNggPvuu+9W/gO84zu+42e90zu902cD3Hfffbd+/dd//fv8wz/8w2/zf8w111zz4DNnzjz4xV7sxV7rxV/8xV/7xV7sxV6b53Lffffd+g//8A+/fd999936D//wD7/zD//wD7/NVVdd9f/afffdd+t999333b/1W7/13QDXXHPNg1/sxV7stV/sxV7stV7ndV7nva+55poHX3PNNe/9Oq/zOu8NcN999936D//wD7/9D//wD7/zW7/1W9/N/wK/9Vu/9d0AH/7hH/5d7/RO7/TZAD/6oz/6OVx11VVXXXXV/37oQQ96EFddddVVV131v80111zz4M/5nM/5LYAP+ZAPeQj/Rtdcc82DP/zDP/y7XuzFXuy1AX7rt37ru7/+67/+ffg/4pprrnnwa7/2a78XwOu8zuu89zXXXPNgnst9991362/91m99N8CP/uiPfg5XXXXVVf9K11xzzYNf7MVe7LVf7MVe7LVe53Ve5715Lvfdd9+t//AP//Dbv/Vbv/U9//AP//Db/A/2Oq/zOu/94R/+4d8F8CM/8iOf/aM/+qOfw1VXXXXVVVf974Ye9KAHcdVVV1111VX/21xzzTUP/vAP//DverEXe7HX/q3f+q3v/vqv//r34V/pHd/xHT/rnd7pnT4b4L777rv167/+69/nH/7hH36b/8WuueaaB7/2a7/2e734i7/4a7/Yi73Ya/Nc7rvvvlsBfuu3fuu7/+Ef/uF3/uEf/uG3ueqqq676D3TNNdc8GOC1X/u13+vFX/zFX/vFXuzFXpsH+Id/+Iffvu+++279rd/6re/5h3/4h9/mf6DXeZ3Xee8P//AP/y6Ar//6r3+f3/qt3/purrrqqquuuup/L/SgBz2Iq6666qqrrvrf6JprrnnwN33TNz0d4DM/8zNf5x/+4R9+mxfBNddc8+AP//AP/64Xe7EXe22A3/qt3/rur//6r38f/pe65pprHvzar/3a7/XiL/7ir/1iL/Zir80D3Hfffbf+wz/8w2/fd999t/7DP/zD7/zDP/zDb3PVVVdd9V/ommuuefCZM2ce/GIv9mKv9eIv/uKv/WIv9mKvzTPdd999t/7Wb/3Wd//oj/7o5/A/zOu8zuu894d/+Id/1z/8wz/89md+5me+DlddddVVV131vxd60IMexFVXXXXVVVf9b/U6r/M67/3hH/7h33Xffffd+lmf9Vmvc999993KC/GO7/iOn/VO7/ROnw1w33333fr1X//17/MP//APv83/Mtdcc82DX/u1X/u9XvzFX/y1X+zFXuy1eab77rvv1t/6rd/6boAf/dEf/Ryuuuqqq/6Hueaaax782q/92u/1Tu/0Tp/NM9133323/sM//MNv/9Zv/db3/MM//MNv8z/EN33TNz39mmuuefCHfMiHPOS+++67lauuuuqqq6763wk96EEP4qqrrrrqqqv+N/vcz/3c33qxF3ux1/6t3/qt7/76r//69+H5uOaaax78ju/4jp/1Oq/zOu8N8Fu/9Vvf/fVf//Xvw/8i11xzzYNf+7Vf+71e53Ve572vueaaB/NM9913362/9Vu/9d1nz559xm/91m99N1ddddVV/wtcc801D36xF3ux136d13md93qxF3ux1+aZ7rvvvlt/67d+67t/+7d/+3vuu+++W/lv9Lmf+7m/9WIv9mKv/Zmf+Zmv8w//8A+/zVVXXXXVVVf974Qe9KAHcdVVV1111VX/m11zzTUP/qZv+qanA3z913/9+/zWb/3Wd/NcPvdzP/e3zpw582CAr//6r3+ff/iHf/ht/he45pprHvzar/3a7/U6r/M6733NNdc8mGe67777bv2t3/qt7z579uwzfuu3fuu7uer/jWuuuebBPNOZM2ceDHDNNdc8GODMmTMP4gGuueaaBwNcc801D+aZzpw582D+hzt79uytPNN99913K89033333Qpw9uzZZwDcd999t/JMZ8+evfW+++67lav+V7rmmmse/Nqv/drv9Tqv8zrvfc011zwY4L777rv1H/7hH377t37rt77nH/7hH36b/wYf/uEf/l2v8zqv895f//Vf/z6/9Vu/9d1cddVVV1111f9O6EEPehBXXXXVVVdd9b/d67zO67z3h3/4h3/Xfffdd+tnfdZnvc599913K8/0uZ/7ub/1Yi/2Yq9933333fohH/IhD+F/uGuuuebBr/3ar/1er/M6r/Pe11xzzYN5pvvuu+/W3/qt3/rus2fPPuO3fuu3vpur/se75pprHswznTlz5sEA11xzzYMBzpw58yAe4JprrnkwwDXXXPNgnunMmTMPBrjmmmsezFUvsvvuu+9Wnuns2bO3Atx333238kz33XffrQBnz559BsB99913K8909uzZWwHuu+++W7nqv9w111zz4Bd7sRd77Rd7sRd7rdd5ndd5b57pvvvuu/W3fuu3vvu3f/u3v+e+++67lf8i7/iO7/hZ7/RO7/TZP/IjP/LZP/qjP/o5XHXVVVddddX/TuhBD3oQV1111VVXXfV/wed+7uf+1ou92Iu99j/8wz/89md+5me+DsCLvdiLvfbnfu7n/hbAZ37mZ77OP/zDP/w2/wNdc801D37t137t93qd13md977mmmsezDPdd999t/7Wb/3Wd//DP/zD7/zDP/zDb3PVf7trrrnmwWfOnHnwNddc8+AzZ848COCaa6558DXXXPPgM2fOPPiaa655MP+J7rvvvlt5prNnz94KcN99990KcN99993KA5w9e/YZAPfdd9+tPNPZs2dv5X+BM2fOPBjgmmuueTDPdObMmQcBXHPNNQ8GuOaaax7MM505c+bB11xzzYP5D3bffffdCnD27Nlb77vvvlvvu+++W8+ePfuM++6779azZ8/eet99993KVf8prrnmmge/9mu/9nu9+Iu/+Gu/2Iu92GvzTP/wD//w27/1W7/1Pb/1W7/13fwne7EXe7HX/tzP/dzf+od/+Iff/szP/MzX4aqrrrrqqqv+d0IPetCDuOqqq6666qr/C6655poHf9M3fdPTAb7+67/+fe67775bP/dzP/e3AD7zMz/zdf7hH/7ht/kf5Jprrnnwa7/2a7/X67zO67z3Nddc82Ce6b777rv1t37rt777H/7hH37nH/7hH36bq/5LXHPNNQ8GOHPmzINf7MVe7LUArrnmmgdfc801DwZ4sRd7sdfmX+m+++67lWc6e/bsrQD33XffrQD33XffrTzA2bNnnwFw33333coznT179laA++6771auepFdc801D+aZzpw582CAa6655sE805kzZx4EcM011zwY4Jprrnkwz3TmzJkHX3PNNQ/mX+G+++679ezZs7fed999twL8wz/8w+/cd999twL8wz/8w29z1b/bNddc8+B3fMd3/KzXeZ3XeW+e6b777rv1R3/0Rz/nt37rt76b/yTXXHPNg7/pm77p6ffdd9+tH/IhH/IQrrrqqquuuup/J/SgBz2Iq6666qqrrvq/4nVe53Xe+8M//MO/67777rv1mmuueTDAj/zIj3z2j/7oj34O/0O84zu+42e9+Iu/+Gu/2Iu92GvzTPfdd9+tv/Vbv/Xd//AP//A7//AP//DbXPUf5pprrnkwwJkzZx58zTXXPPjMmTMPAnjxF3/x1wZ4sRd7sdfmX+G+++679ezZs7fed999t9533323Apw9e/YZ9913361nz5699b777ruVq/5PuOaaax7MM505c+bB11xzzYNf7MVe7LUArrnmmgefOXPmwddcc82D+Rfcd999twKcPXv21vvuu+/Wf/iHf/gdgPvuu+/Ws2fP3nrffffdylUvkmuuuebBL/ZiL/bar/M6r/NeL/ZiL/baAPfdd9+tv/Vbv/XdP/qjP/o5/Ae75pprHvxN3/RNTwd4u7d7O3HVVVddddVV/zuhBz3oQVx11VVXXXXV/yWf+7mf+1sv9mIv9toA9913360f8iEf8hD+m11zzTUPfu3Xfu33eqd3eqfP5pnuu+++W3/rt37ru//hH/7hd/7hH/7ht7nqX+2aa655MMCLvdiLvfaZM2ceBHDNNdc8+JprrnnwmTNnHnzNNdc8mBfRfffddyvA2bNnb73vvvtuve+++249e/bsM+67775bAf7hH/7ht7nqqufjmmuuefCZM2cefM011zwY4MVe7MVe65prrnkwwIu92Iu9Ni+C++6779azZ8/eet99990K8A//8A+/c999990K8A//8A+/zVXP45prrnnwh3/4h3/Xi73Yi702wH333XfrZ33WZ73Offfddyv/gT73cz/3t17sxV7stT/zMz/zdf7hH/7ht7nqqquuuuqq/33Qgx70IK666qqrrrrq/5LP/dzP/a0Xe7EXe22e6b777rv1sz7rs17nvvvuu5X/Ytdcc82DX/u1X/u93umd3umzeab77rvv1h/90R/9nN/6rd/6bq56kVxzzTUPBnixF3ux1z5z5syDXvzFX/y1X+zFXuy1eRHcd999twKcPXv21vvuu+/W++6771aAs2fPPuO+++679ezZs7fed999t3LVVf9JrrnmmgcDvNiLvdhrA7zYi73YawFcc801Dz5z5syDr7nmmgfzQtx33323AvzDP/zDb//DP/zD79x33323/sM//MNvc9Vl7/iO7/hZr/M6r/Pe11xzzYPvu+++W3/rt37ru3/0R3/0c/gP8k3f9E1PB/iQD/mQh3DVVVddddVV/zuhBz3oQVx11VVXXXXV/xUv9mIv9tqf+7mf+1sAP/IjP/LZr/M6r/Pe11xzzYPvu+++W3/rt37ru3/0R3/0c/gvcM011zz4tV/7td/rnd7pnT6bZ7rvvvtu/fqv//r3+Yd/+Iff5qrn65prrnkwwIu92Iu99pkzZx704i/+4q/9Yi/2Yq/NC3DffffdCvAP//APv33ffffdCnD27Nln3HfffbeePXv21vvuu+9Wrrrqf7hrrrnmwQBnzpx58DXXXPPgM2fOPOiaa6558DXXXPPgM2fOPPiaa655MM/lvvvuuxXgH/7hH377H/7hH37nvvvuu/Uf/uEffpv/p6655poHv/Zrv/Z7vdM7vdNnA9x33323/uiP/ujn/NZv/dZ38+/wuZ/7ub/1Yi/2Yq/9D//wD7/9mZ/5ma/DVVddddVVV/3vhB70oAdx1VVXXXXVVf8XvNiLvdhrf+7nfu5vAXzmZ37m6/zDP/zDb19zzTUPfu3Xfu33eqd3eqfPBrjvvvtu/dEf/dHP+a3f+q3v5j/BNddc8+DXfu3Xfq93eqd3+mye6R/+4R9+++u//uvf57777ruVq57lmmuuefCLvdiLvfaZM2ce9OIv/uKvfebMmQdf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p3d6p8/mAf7+7//+t++7775bueqqq6666qr/e9CDHvQgrrrqqquuuup/s9d5ndd57w//8A//rt/6rd/67q//+q9/H/6Nrrnmmgd/+Id/+He92Iu92GsD/MiP/Mhn/+iP/ujnAFxzzTUPfu3Xfu33evEXf/HXfrEXe7HX5pnuu+++W//hH/7ht3/rt37re/7hH/7ht/lvds011zz4tV/7td/rnd7pnT6b53Lffffd+lu/9VvfDfCjP/qjn8NVV1111X+wa6655sEv9mIv9tov9mIv9lqv8zqv8948wG/91m9993333Xfrb//2b3/Pfffddyv/xa655poHv/Zrv/Z7vdM7vdNn80w/8iM/8tlnz559xod/+Id/13333Xfrj/7oj37Ob/3Wb303V1111VVXXfV/C3rQgx7EVVddddVVV/1v9uEf/uHf9Tqv8zrv/fVf//Xv81u/9Vvfzb/B67zO67z3h3/4h38XwH333Xfr13/917/PP/zDP/w2z8c111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bZ7pvvvuu/W3fuu3vvsf/uEffucf/uEffpv/Itdcc82DX/u1X/u9Xud1Xue9r7nmmgfzTPfdd9+tv/Vbv/XdAD/6oz/6OVx11VVX/Re65pprHnzmzJkHv9iLvdhrvfiLv/hrv9iLvdhrA9x33323/sM//MNv/9Zv/db3/MM//MNv81/gHd/xHT/rnd7pnT6bZ/qHf/iH3/76r//697nvvvtuBXjHd3zHz3qnd3qnz77vvvtu/fqv//r3+Yd/+Iff5qqrrrrqqqv+70APetCDuOqqq6666qr/zT78wz/8u17ndV7nvb/+67/+fX7rt37ru/lX+vAP//Dvep3XeZ33BviHf/iH3/7Mz/zM1+FFdM011zz4tV/7td/rdV7ndd77mmuueTDPdN999936W7/1W9/927/9299z33333cp/sGuuuebBr/3ar/1eL/7iL/7aL/ZiL/baPNN9991362/91m9992//9m9/z3333XcrV/2fcc011zyYZzpz5syDeaZrrrnmwQBnzpx5EM90zTXXPBjgmmuueTDPdObMmQcDXHPNNQ/mX+m+++67lf9iZ8+evRXgvvvuuxXgvvvuu/Xs2bPP4Jnuu+++WwHOnj1763333XcrV/2Pd8011zz4Hd/xHT/rdV7ndd6bZ7rvvvtu/dEf/dHP+a3f+q3v5j/Bi73Yi732h3/4h3/XNddc82CA++6779av//qvf59/+Id/+G2eyzu+4zt+1ju90zt99n333XfrZ33WZ73OfffddytXXXXVVVdd9X8DetCDHsRVV1111VVX/W/2ju/4jp/1Tu/0Tp/9mZ/5ma/zD//wD7/Ni+iaa6558Od8zuf81jXXXPNggB/5kR/57B/90R/9HP4NrrnmmgefOXPmwa/zOq/zXq/zOq/z3jzAfffdd+tv/dZvffeP/uiPfg7/Ti/2Yi/22q/zOq/zXq/zOq/z3jzAj/zIj3z22bNnn/Fbv/Vb381V/yNcc801D+aZzpw582CAa6655sE805kzZx7EM11zzTUPBrjmmmsezDOdOXPmwQDXXHPNg7nqRXLffffdyjOdPXv2VoD77rvvVoD77rvv1rNnzz6DZ7rvvvtuBTh79uyt9913361c9V/mmmuuefBrv/Zrv9frvM7rvPc111zzYID77rvv1t/6rd/67t/+7d/+nvvuu+9W/p2uueaaB3/4h3/4d73Yi73YawPcd999t/7oj/7o5/zWb/3Wd/MCXHPNNQ/+8A//8O96sRd7sde+7777bv2QD/mQh3DVVVddddVV/zegBz3oQVx11VVXXXXV/2av8zqv894f/uEf/l333XffrR/yIR/yEF4E7/iO7/hZ7/RO7/TZAPfdd9+tX//1X/8+//AP//Db/Ae45pprHvxiL/Zir/1iL/Zir/U6r/M6780z3XfffbeePXv21t/6rd/6nt/6rd/6bl5E11xzzYNf+7Vf+73e6Z3e6bN5gPvuu+/W3/qt3/ruH/3RH/0crvovc8011zwY4MyZMw++5pprHnzmzJkHXXPNNQ++5pprHnzmzJkHX3PNNQ/mP8F99913K8909uzZW3mm++6771aA++6771ae6ezZs88AuO+++27lmc6ePXsrwH333Xcr/0rXXHPNg/kvdubMmQcDXHPNNQ8GOHPmzIOuueaaB/NM11xzzYMBzpw58+BrrrnmwfwHuO+++27lmc6ePXsrwH333XcrwD/8wz/8zn333Xfr2bNnb73vvvtu5ap/t2uuuebBL/ZiL/bar/M6r/NeL/ZiL/baAPfdd9+t//AP//Dbv/Vbv/U9//AP//Db/Ctdc801D/7wD//w73qxF3ux1wa47777bv2t3/qt7/7RH/3Rz+FFcM011zz4cz7nc34L4Ed/9Ec/57d+67e+m6uuuuqqq6763w896EEP4qqrrrrqqqv+N7vmmmse/OEf/uHf9WIv9mKv/Vu/9Vvf/fVf//XvwwvxuZ/7ub/1Yi/2Yq8N8CM/8iOf/aM/+qOfw3+Sa6655sEv9mIv9tov9mIv9lqv8zqv894803333XfrP/zDP/z2P/zDP/zOb/3Wb303z+Waa6558Gu/9mu/1zu90zt9Ng9w33333fpbv/Vb3/2jP/qjn8NV/+GuueaaBwOcOXPmwS/2Yi/2WgDXXHPNg6+55poHnzlz5sHXXHPNg3kR3XfffbfyTGfPnr0V4L777ruVZ7rvvvtu5ZnOnj37DID77rvvVp7p7NmztwLcd999t3LVi+Saa655MM905syZBwNcc801DwY4c+bMg6655poH80zXXHPNgwHOnDnz4GuuuebB/Cvcd999twKcPXv21vvuu+/Wf/iHf/gdgPvuu+/Wf/iHf/htrvpXu+aaax78ju/4jp/1Oq/zOu/NM9133323/uiP/ujn/NZv/dZ38y+45pprHvzar/3a7/VO7/ROnw1w33333fpbv/Vb3/2jP/qjn8O/0ju+4zt+1ju90zt99o/8yI989o/+6I9+DlddddVVV131vx960IMexFVXXXXVVVf9b3fNNdc8+Ju+6Zueft9999369V//9e/zD//wD7/N8/GO7/iOn/VO7/ROn33ffffd+vVf//Xv8w//8A+/zX+Ra6655sEv9mIv9tqv8zqv814v9mIv9to803333XfrP/zDP/z2b/3Wb33Pi73Yi73W67zO67z3Nddc82Ce6b777rv1t37rt777t3/7t7/nvvvuu5Wr/k2uueaaBwOcOXPmwS/2Yi/2WgDXXHPNg6+55poHnzlz5sHXXHPNg3kR3HfffbcCnD179tb77rvv1vvuu+9WgH/4h3/4HYB/+Id/+G2u+l/pmmuueTDPdObMmQdfc801DwY4c+bMg6655poHX3PNNQ8+c+bMg6+55poH80Lcd999twL8wz/8w28D/MM//MPv3HfffbeePXv21vvuu+9WrnqBrrnmmge/9mu/9nu90zu902fzTPfdd9+tv/Vbv/XdP/qjP/o5PMA111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bZ7pR37kRz77R3/0Rz+Hf6MXe7EXe+3P/dzP/a1/+Id/+O3P/MzPfB2uuuqqq6666n8/9KAHPYirrrrqqquu+r/gHd/xHT/rnd7pnT77vvvuu/VDPuRDHsJzebEXe7HX/tzP/dzfAvjMz/zM1/mHf/iH3+a/yTXXXPPgF3uxF3vtd3zHd/ysa6655sE8H/fdd9+tv/Vbv/XdP/qjP/o5XPVCXXPNNQ8GeLEXe7HXPnPmzIMArrnmmgdfc801Dz5z5syDr7nmmgfzIrjvvvtuBTh79uyt991336333XffrWfPnn3Gfffdd+vZs2dvve+++27lqv/3rrnmmgcDnDlz5sHXXHPNg1/sxV7stQCuueaaB7/Yi73Ya/MvuO+++249e/bsrffdd9+t9913361nz559xn333Xfr2bNnb73vvvtu5SquueaaB7/2a7/2e73O67zOe19zzTUPBrjvvvtu/Yd/+Iffvu+++259ndd5nfe+5pprHswD/NZv/dZ3/+iP/ujn3Hfffbfy7/BiL/Zir/25n/u5v/UP//APv/2Zn/mZr8NVV1111VVX/e+HHvSgB3HVVVddddVV/xdcc801D/6cz/mc37rmmmse/PVf//Xv81u/9VvfzQN80zd909OvueaaB//Ij/zIZ//oj/7o5/Df6Jprrnnwa7/2a7/Xi7/4i7/2i73Yi702L8R99913K8A//MM//PY//MM//M5999136z/8wz/8Nv9PXXPNNQ9+7dd+7fcCePEXf/HXfrEXe7HX5kVw33333Qpw9uzZW//+7//+twHOnj37jPvuu+/Ws2fP3nrffffdylVX/Qe45pprHnzmzJkHX3PNNQ8GeLEXe7HXuuaaax585syZB19zzTUP5oW47777bgX4h3/4h9++7777bj179uwz7rvvvlv/4R/+4bf5f+iaa6558Od8zuf81jXXXPNgnst9991362/91m99N8CP/uiPfg7/Qa655poHf9M3fdPT77vvvls/5EM+5CFcddVVV1111f9+6EEPehBXXXXVVVdd9X/Fi73Yi732537u5/7Wfffdd+tnfdZnvc599913K8Dnfu7n/taLvdiLvfY//MM//PZnfuZnvg7/Ta655poHv/Zrv/Z7vdM7vdNn80z33Xffrb/1W7/13T/6oz/6Oddcc82DAV7sxV7stV/sxV7sta655poHv9iLvdhr81zuu+++W8+ePXvrfffdd+s//MM//M4//MM//PZ99913K/+HXHPNNQ8+c+bMg1/sxV7sta655poHX3PNNQ9+sRd7sdfm+bjvvvtuBTh79uytf//3f//bAGfPnn3Gfffdd+vZs2dvve+++27lqqv+B7jmmmseDHDmzJkHX3PNNQ9+sRd7sdcCuOaaax78Yi/2Yq/NC3Dffffdevbs2Vvvu+++W3/rt37re/7hH/7ht/k/6pprrnnwa7/2a7/X67zO67z3Nddc82Ae4L777rv1mmuueTDAfffdd+tv/dZvffeP/uiPfg7/wX7iJ37CAG/3dm8nrrrqqquuuup/P/SgBz2Iq6666qqrrvq/5HM/93N/68Ve7MVe+7d+67e+++u//uvf53Ve53Xe+8M//MO/C+BDPuRDHnLffffdyn+xa6655sGv/dqv/V7v9E7v9Nk80z/8wz/89td//de/z3333XcrL8Q111zz4DNnzjz4mmuuefCLvdiLvdaLvdiLvfY111zzYJ7Lfffdd+s//MM//PZ999136z/8wz/8zj/8wz/8Nv9LXHPNNQ9+7dd+7fcCePEXf/HXfrEXe7HX5gW47777bv2Hf/iH377vvvtu/Yd/+Iff+Yd/+Iff5qqr/o+45pprHgzwYi/2Yq8N8GIv9mKv9WIv9mKvfc011zyY53Lffffd+g//8A+//Q//8A+/c9999936D//wD7/N/0LXXHPNg1/sxV7stc+cOfOgd3qnd/psHuC+++679ezZs7f+/d///W//6I/+6OcAXHPNNQ9+7dd+7fd6p3d6p88G+Id/+Iff/vqv//r3ue+++27lP8jnfu7n/taLvdiLvfZnfuZnvs4//MM//DZXXXXVVVdd9b8betCDHsRVV1111VVX/V9yzTXXPPibvumbng7w9V//9e/z4R/+4d8F8Jmf+Zmv8w//8A+/zX+ha6655sGv/dqv/V7v9E7v9Nk80z/8wz/89td//de/z3333Xcr/0bXXHPNg1/sxV7stc+cOfOgF3/xF3/tF3uxF3ttno/77rvv1n/4h3/47X/4h3/4nfvuu+/Wf/iHf/ht/htdc801Dz5z5syDX+zFXuy1rrnmmgdfc801D36xF3ux1+b5uO+++249e/bsrX//93//2wD/8A//8Dv/8A//8NtcddX/Q9dcc82DX+zFXuy1X+zFXuy1rrnmmge/2Iu92GvzXO67775bAf7hH/7ht//hH/7hd+67775b/+Ef/uG3+R/ommuuefBrv/Zrv9eLv/iLv/aLvdiLvTYPcN999936W7/1W9/9D//wD7/zD//wD7/NC/CO7/iOn/VO7/ROnw1w33333fpbv/Vb3/2jP/qjn8N/gM/93M/9rRd7sRd77c/8zM98nX/4h3/4ba666qqrrrrqfzf0oAc9iKuuuuqqq676v+Z1Xud13vvDP/zDv4tn+od/+Iff/szP/MzX4b/QO77jO37WO73TO302z3Tffffd+vVf//Xv8w//8A+/zX+Ca6655sEv9mIv9tov9mIv9lrXXHPNg1/sxV7stXku9913360A//AP//Db//AP//A79913363/8A//8Nv8B7vmmmseDPDar/3a7wXw4i/+4q/9Yi/2Yq/NC3Dffffd+g//8A+/fd999936D//wD7/zD//wD7/NVVdd9UJdc801D36xF3ux136xF3ux17rmmmse/GIv9mKvzXO57777bj179uytf//3f//b//AP//A7//AP//Db/Dd5sRd7sdd+sRd7sdd6p3d6p8/mudx33323/tZv/dZ3//Zv//b33HfffbfyIrrmmmse/Nqv/drv9U7v9E6fDfBbv/Vb3/2jP/qjn3Pffffdyr/Dh3/4h3/X67zO67z3j/zIj3z2j/7oj34OV1111VVXXfW/G3rQgx7EVVddddVVV/1fc8011zz4wz/8w7/rxV7sxV4b4O3e7u3Ef5F3fMd3/Kx3eqd3+mye6b777rv167/+69/nH/7hH36b/0LXXHPNgwFe7MVe7LVf7MVe7LWuueaaB7/Yi73Ya/Nc7rvvvlvPnj1763333XfrP/zDP/zOP/zDP/z2fffddyv/Ctdcc82DX+zFXuy1X+zFXuy1XuzFXuy1r7nmmgfzfNx33323nj179ta///u//22Af/iHf/idf/iHf/htrrrqqn+3a6655sFnzpx58DXXXPPgF3uxF3ut13md13lvno/77rvv1n/4h3/47X/4h3/4nfvuu+/Wf/iHf/ht/hNcc801D37t137t93rxF3/x136xF3ux1+YB7rvvvlt/67d+67vPnj37jN/6rd/6bv6d3vEd3/Gz3umd3umzAe67775bf+u3fuu7f/RHf/Rz+Dd6x3d8x896p3d6p8/+kR/5kc/+0R/90c/hqquuuuqqq/53Qw960IO46qqrrrrqqv9rXuzFXuy1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13/9+/B8XHPNNQ/+8A//8O96sRd7sdcG+JEf+ZHP/tEf/dHP4YW45pprHvzhH/7h3/ViL/Zirw3wIz/yI5/9oz/6o5/D/zIv9mIv9tov9mIv9lov/uIv/tov9mIv9to8wH333Xfrb/3Wb303wI/+6I9+Dv/BrrnmmgcDnDlz5sHXXHPNg1/sxV7stQCuueaaB585c+bB11xzzYP5F9x33323AvzDP/zDbwP8wz/8w+8A3Hfffbf+wz/8w29z1VX/T11zzTUPPnPmzINf7MVe7LUAXvzFX/y1X+zFXuy1eSHuu+++W8+ePXvr3//93/82wD/8wz/8zj/8wz/8Ni/ANddc8+DXfu3Xfq8Xf/EXf+0Xe7EXe22e6b777rv1H/7hH377H/7hH37nt37rt76b/4GuueaaB7/2a7/2e73TO73TZ9933323fsiHfMhDeC6f+7mf+1sv9mIv9tq/9Vu/9d1f//Vf/z5cddVVV1111f8d6EEPehBXXXXVVVdd9X/F67zO67z3h3/4h3/Xb/3Wb33313/9178PL8Q7vuM7ftY7vdM7fTbAfffdd+tv/dZvffeP/uiPfg7P5ZprrnnwN33TNz0d4L777rv167/+69/nH/7hH36b/wWuueaaB7/2a7/2e734i7/4a7/Yi73Ya/MA9913361nz5699e///u9/+7d/+7e/57777ruV/0bXXHPNgwHOnDnz4GuuuebBZ86cedA111zz4GuuuebBZ86cefA111zzYP4F9913360AZ8+evfW+++679b777rv17Nmzz7jvvvtuPXv27K333XffrVx11f8i11xzzYMBzpw582CAa6655sFnzpx5EM/04i/+4q/9Yi/2Yq/NC3Hffffd+g//8A+/fd9999169uzZZ9x33323/sM//MNv8+9wzTXXPPi1X/u13+vFX/zFX/vFXuzFXptnuu+++279h3/4h9/+h3/4h9/5rd/6re/mf5BrrrnmwR/+4R/+XS/2Yi/22r/1W7/13V//9V//PjzTO77jO37WO73TO332fffdd+uHfMiHPISrrrrqqquu+r8FPehBD+Kqq6666qqr/q94x3d8x896p3d6p8/+kR/5kc/+0R/90c/hX3DNNdc8+MM//MO/68Ve7MVeG+BHfuRHPvtHf/RHP4dnep3XeZ33/vAP//DvAviHf/iH3/7Mz/zM1+F/uGuuuebBr/3ar/1er/M6r/Pe11xzzYN5gPvuu+/W3/qt3/ruf/iHf/idf/iHf/ht/pe55pprHnzmzJkHX3PNNQ8GeLEXe7HXuuaaax4M8GIv9mKvzYvgvvvuu/Xs2bO33nfffbfyTPfdd9+tAGfPnn0GwH333Xcrz3T27NlbAe67775b+V/immuueTDPdObMmQcDXHPNNQ8GOHPmzIN4gLNnzz6D/wT33Xffrfw7nD179tb77rvvVv6PuOaaax7MM505c+bB11xzzYPPnDnzIJ7pmmuuefA111zzYIAzZ848+Jprrnkw/wr33XffrQD/8A//8Nv33Xffrf/wD//wO2fPnr31vvvuu5X/ZNdcc82DX+zFXuy1X+d1Xue9XuzFXuy1eab77rvv1rNnz976W7/1W9/zW7/1W9/N/wDXXHPNg7/pm77p6QA/8iM/8tk/+qM/+jnXXHPNg7/pm77p6QCf+Zmf+Tr/8A//8NtcddVVV1111f8t6EEPehBXXXXVVVdd9X/Fh3/4h3/X67zO67z313/917/Pb/3Wb303L4Jrrrnmwa/92q/9Xu/0Tu/02QD33XffrV//9V//Pi/2Yi/2Wu/0Tu/02QC/9Vu/9d1f//Vf/z78D3bNNdc8+LVf+7Xf653e6Z0+m2e67777bv2t3/qt7wb40R/90c/h/7hrrrnmwQBnzpx58DXXXPPgF3uxF3stgGuuuebBZ86cefA111zzYP6d7rvvvlt5prNnz94KcN99993KM9133323Apw9e/YZPNN99913K8DZs2dvBbjvvvtu5blcc801D+aZzpw582CAa6655sEAZ86ceRDPdM011zwY4Jprrnkwz3TmzJkHX3PNNQ/m/6j77rvvVoCzZ8/eet99993KM9133323nj179hkA9913360AZ8+evfW+++67lf9E11xzzYMBzpw58+BrrrnmwQBnzpx5EMA111zz4GuuuebBAGfOnHnwNddc82D+He67775bAc6ePXsrwH333XfrfffddyvP9A//8A+/8w//8A+/zf8Q11xzzYNf7MVe7LVf53Ve571e7MVe7LV5pvvuu+/W3/qt3/ru3/7t3/6e++6771b+G73O67zOe3/4h3/4d9133323fv3Xf/37vNM7vdNnvdiLvdhr/9Zv/dZ3f/3Xf/37cNVVV1111VX/96AHPehBXHXVVVddddX/FR/+4R/+Xa/zOq/z3l//9V//Pr/1W7/13fwrXHPNNQ/+nM/5nN+65pprHswDfP3Xf/37/NZv/dZ38z/QNddc8+DXfu3Xfq/XeZ3Xee9rrrnmwTzTfffdd+uP/uiPfs5v/dZvfTdXPcs111zzYJ7pxV7sxV6bZzpz5syDAK655poHA1xzzTUP5pnOnDnzYIBrrrnmwfwvcd99993KM509e/ZWgPvuu+9WgPvuu+9WHuCaa655MP8Jrrnmmgfz73DmzJkHX3PNNQ/m3+G+++67FeDs2bO3Atx33323Atx33323nj179hkA991336080zXXXPPgM2fOPIhnuuaaax58zTXXPBjgzJkzD77mmmsezL/RfffddyvPdPbs2Vvvu+++W++7775beaazZ88+47777rsV4OzZs7fed999t/K/3DXXXPPgF3uxF3vt13md13mvF3uxF3ttgPvuu+/W3/qt3/ru3/7t3/6e++6771b+m7zjO77jZ73TO73TZ/NM9913360f8iEf8hCuuuqqq6666v8m9KAHPYirrrrqqquu+r/icz/3c3/rxV7sxV77Mz/zM1/nH/7hH36bf6UXe7EXe+3P/dzP/S2e6b777rv167/+69/nH/7hH36b/0Fe53Ve571f7MVe7LVe53Ve5715pvvuu+/W3/qt3/ruH/3RH/0crvoPdc011zwY4MyZMw9+sRd7sde65pprHnzNNdc8+MVe7MVem/9B7rvvvlt5prNnz94KcN99993KM9133323Apw9e/YZZ86ceRD/wa655poH8x/ommuuefCZM2cezDNdc801D+Z/gPvuu+9WgLNnz95633333Qpw33333Qpw9uzZZ9x33323Apw9e/ZWgPvuu+9W/p+75pprHvyO7/iOn/U6r/M67w1w33333foP//APv/2jP/qjn3Pffffdyn+xa6655sGf8zmf81vXXHPNgwE+8zM/83X+4R/+4be56qqrrrrqqv+b0IMe9CCuuuqqq6666v+Kb/qmb3r6Nddc8+AP+ZAPech99913K/8KL/ZiL/ban/u5n/tbAP/wD//w22fOnHnwNddc8+D77rvv1t/6rd/67n/4h3/4nX/4h3/4bf6bXHPNNQ9+7dd+7fd6p3d6p8/mAX7kR37ks8+ePfuM3/qt3/purvo3ueaaax585syZB19zzTUPPnPmzIMAXvzFX/y1AV7sxV7stXkR3HfffbcCnD179tb77rvv1vvuu+9Wnuns2bPPALjvvvtuBTh79uytPJczZ848mGe65pprHswznTlz5kHXXHPNg3mma6655sE805kzZx4McM011zyYq/7V7rvvvlsBzp49e+uZM2ceDHDNNdc8mH/BfffddyvAP/zDP/w2wD/8wz/8zn333Xfr2bNnb73vvvtu5aoX6JprrnnwO77jO37W67zO67w3wH333XfrP/zDP/z2b/3Wb33PP/zDP/w2/wWuueaaB3/O53zOb11zzTUP5pl+5Ed+5LN/9Ed/9HO46qqrrrrqqv+b0IMe9CCuuuqqq6666v+Kn/iJnzDAh3zIhzzkvvvuu5UX0Tu+4zt+1ju90zt9NsBv/dZvfffXf/3Xv88111zz4Nd+7dd+r9d5ndd572uuuebBAPfdd9+tv/Vbv/XdP/qjP/o5/Be45pprHvzar/3a7/U6r/M6733NNdc8mGe67777bv2t3/qt7/7RH/3Rz+GqF+qaa655MMCZM2ce/GIv9mKvBXDNNdc8+JprrnnwmTNnHnzNNdc8mBfBfffdd+vZs2dvve+++2697777bj179uwz7rvvvlvPnj1763333Xcr/wNcc801D+aZzpw582CAa6655sE805kzZx4EcM011zz4vvvuu5X/YGfPnn0G/4Huu+++W/kPdPbs2VsB7rvvvlt5Ia655poH80wv9mIv9toAL/ZiL/Za11xzzYPPnDnz4GuuuebBvAD33XffrQD/8A//8NsA//AP//A79913361nz5699b777ruVqy675pprHvzar/3a7/VO7/ROn80z/dZv/dZ3/9Zv/db3/MM//MNv85/gmmuuefBrv/Zrv9c7vdM7fTbAfffdd+uP/uiPfs6Hf/iHfxfA13/917/Pb/3Wb303V1111VVXXfV/D3rQgx7EVVddddVVV/1f8RM/8RMGeLu3ezvxIrjmmmse/OEf/uHf9WIv9mKvDfD1X//17/Nbv/Vb380DXHPNNQ9+7dd+7fd6p3d6p8/mme67775b/+Ef/uG3f+u3fut7/uEf/uG3+Q92zTXXPPi1X/u13+ud3umdPptnuu+++279rd/6re/+7d/+7e+57777buWqZ7nmmmse/GIv9mKvfebMmQcBvPiLv/hrA7zYi73Ya/MiuO+++24F+Id/+Iffvu+++24F+Id/+IffAfiHf/iH3+aqqx7gmmuueTDAi73Yi702wIu92Iu91jXXXPPgM2fOPPiaa655MC/AfffddyvAP/zDP/w2wD/8wz/8zn333Xfr2bNnb73vvvtu5f+ha6655sGv/dqv/V7v9E7v9Nk803333Xfr13/917/PP/zDP/w2/0He8R3f8bPe6Z3e6bN5ph/5kR/57B/90R/9HIDXeZ3Xee8P//AP/6777rvv1s/6rM96nfvuu+9Wrrrqqquuuur/FvSgBz2Iq6666qqrrvq/4JprrnnwN33TNz39vvvuu/VDPuRDHsK/4Jprrnnw53zO5/zWNddc8+D77rvv1q//+q9/n3/4h3/4bV6Aa6655sEv9mIv9tqv8zqv814v9mIv9to803333Xfrb/3Wb333b//2b3/Pfffddyv/Rtdcc82DX/u1X/u9Xud1Xue9r7nmmgfzTPfdd9+tv/Vbv/XdP/qjP/o5/D93zTXXPBjgtV/7td8L4MVf/MVf+8Ve7MVemxfivvvuuxXg7Nmzt/793//9bwOcPXv2Gffdd9+tZ8+evfW+++67lauu+g9yzTXXPBjgxV7sxV4b4MVe7MVe65prrnnwi73Yi702L8R99913K8A//MM//DbAb/3Wb30PwD/8wz/8Nv8PXHPNNQ9+7dd+7fd6p3d6p8/mme67775bf/RHf/Rzfuu3fuu7+Te65pprHvzhH/7h3/ViL/Zirw3wD//wD7/99V//9e9z33333coDfPiHf/h3vc7rvM57/9Zv/dZ3f/3Xf/37cNVVV1111VX/t6AHPehBXHXVVVddddX/Bddcc82DP+dzPue3AD7rsz7rde67775beSG+6Zu+6enXXHPNg//hH/7htz/zMz/zdfhXuOaaax782q/92u/1Oq/zOu99zTXXPBjgvvvuu/Xs2bO3/tZv/db3/NZv/dZ386/w4R/+4d/1Oq/zOu/NM9133323/tZv/dZ3//Zv//b33Hfffbfy/9A111zz4DNnzjz4xV7sxV7rmmuuefA111zz4Bd7sRd7bZ6P++6779Z/+Id/+O377rvvVoB/+Id/+B2Af/iHf/htrrrqf4hrrrnmwQAv9mIv9toAL/ZiL/Za11xzzYNf7MVe7LV5Ae67775b/+Ef/uG3/+Ef/uF37rvvvlv/4R/+4bf5P+yaa6558Gu/9mu/1+u8zuu89zXXXPNggPvuu+/WH/3RH/2c3/qt3/puXkTXXHPNg1/7tV/7vd7pnd7pswHuu+++W3/0R3/0c37rt37ru3k+rrnmmgd/0zd909MB3u7t3k5cddVVV1111f8t6EEPehBXXXXVVVdd9X/F537u5/7Wi73Yi732b/3Wb33313/9178PL8Dnfu7n/taLvdiLvfY//MM//PZnfuZnvg7/Di/2Yi/22q/zOq/zXq/zOq/z3jzTfffdd+s//MM//PZv/dZvfc8//MM//DbPxzXXXPPgD//wD/+uF3uxF3ttnum+++679Ud/9Ec/57d+67e+m/9HrrnmmgefOXPmwS/2Yi/2Wi/+4i/+2i/2Yi/22rwA9913362/9Vu/9d0A//AP//A7//AP//DbXHXV/3LXXHPNg8+cOfPga6655sFnzpx50DXXXPPg13md13lvnst9991369mzZ2+97777bv2t3/qt7/mHf/iH3+b/oGuuuebBr/3ar/1er/M6r/Pe11xzzYMB7rvvvlt/67d+67t/9Ed/9HN4IV7ndV7nvT/8wz/8u3imH/mRH/nsH/3RH/0c/gXf9E3f9PRrrrnmwR/yIR/ykPvuu+9Wrrrqqquuuur/DvSgBz2Iq6666qqrrvq/4pprrnnwN33TNz39vvvuu/Xrv/7r3+cf/uEffpvn8mIv9mKv/bmf+7m/BfAhH/IhD7nvvvtu5T/ANddc8+AXe7EXe+3XeZ3Xea8Xe7EXe22e6b777rv1t37rt777R3/0Rz8H4Jprrnnwa7/2a7/XO73TO302wH333Xfrb/3Wb333j/7oj34O/w9cc801Dz5z5syDX+zFXuy1XvzFX/y1X+zFXuy1eT7uu+++WwF+67d+67sB/uEf/uF3/uEf/uG3ueqq/0euueaaB7/Yi73Ya7/Yi73Ya11zzTUPfrEXe7HX5rncd999t/7DP/zDb//DP/zD7/zDP/zDb99333238n/ENddc8+AXe7EXe+13fMd3/KxrrrnmwQD/8A//8Ntf//Vf/z733XffrTzANddc8+AP//AP/64Xe7EXe22A++6779bP+qzPep377rvvVl4En/u5n/tbL/ZiL/ban/mZn/k6//AP//DbXHXVVVddddX/HehBD3oQV1111VVXXfV/yTu+4zt+1ju90zt99j/8wz/89md+5me+Ds/lm77pm55+zTXXPPjrv/7r3+e3fuu3vpv/BNdcc82DX/u1X/u93umd3umzeab77rvv1n/4h3/47dd5ndd5b57pR37kRz77R3/0Rz+H/6OuueaaB7/Yi73Ya585c+ZBL/7iL/7aL/ZiL/baPB/33XffrWfPnr317//+738b4B/+4R9+5x/+4R9+m6uuuuo5XHPNNQ9+sRd7sdc+c+bMg178xV/8tV/sxV7stXku9913363/8A//8Nv/8A//8Dv33Xffrf/wD//w2/wvd8011zz4xV7sxV77wz/8w78L4L777rv167/+69/nH/7hH34b4B3f8R0/653e6Z0+G+C+++679bd+67e++0d/9Ec/h3+Fz/3cz/2tF3uxF3vtr//6r3+f3/qt3/purrrqqquuuur/DvSgBz2Iq6666qqrrvq/5Jprrnnw53zO5/zWNddc8+Cv//qvf5/f+q3f+m6e6XM/93N/68Ve7MVe+x/+4R9++zM/8zNfh/9k11xzzYNf7MVe7LXf8R3f8bOuueaaB/MAv/Vbv/XdP/qjP/o599133638H3DNNdc8+LVf+7XfC+DFX/zFX/vFXuzFXpvn47777rv17Nmzt/793//9b589e/YZv/Vbv/XdXHXVVf8m11xzzYPPnDnz4GuuuebBr/M6r/NeL/ZiL/baPJf77rvv1rNnz97693//97/9D//wD7/zD//wD7/N/1LXXHPNgz/8wz/8u17sxV7ste+7775b/+Ef/uG3X+d1Xue9eaYf+ZEf+ewf/dEf/Rz+Dd7xHd/xs97pnd7ps3/kR37ks3/0R3/0c7jqqquuuuqq/zuoXHXVVVddddX/Mffdd9+tP/qjP/o5H/7hH/5d7/iO7/hZv/Vbv/XdAC/2Yi/22i/2Yi/22gA/8iM/8jn8F3md13md97rmmmseDHDffffdCnDNNdc8+HVe53Xe+3Ve53Xe+x/+4R9++7d+67e+57d+67e+m/9lrrnmmge/9mu/9nu9zuu8zntfc801D+a53HfffbeePXv21r//+7//7X/4h3/4nX/4h3/4ba666qr/MPfdd9+t9913363/8A//wG/91m99N8A111zz4Bd7sRd77Rd7sRd7rWuuuebBL/ZiL/ba11xzzYNf7MVe7LUB7rvvvlvPnj1763333Xfrb/3Wb33PP/zDP/w2/0vcd999t/7Ij/zI53z4h3/4g6+55poHX3PNNe8NcN9999369V//9e/zD//wD7/NVVddddVVV1313NCDHvQgrrrqqquuuur/mmuuuebBH/7hH/5dL/ZiL/baP/IjP/LZP/qjP/o53/RN3/T0a6655sE/8iM/8tk/+qM/+jn8J7rmmmse/I7v+I6f9Tqv8zrvDXDffffd+lu/9Vvf/aM/+qOfA/BiL/Zir/06r/M67/U6r/M6780z3Xfffbf+wz/8w2//1m/91vf8wz/8w2/zP9A111zz4Nd+7dd+L4B3eqd3+mwe4L777rv17Nmzt/793//9b//DP/zD7/zDP/zDb3PVVVf9t7vmmmse/GIv9mKv/WIv9mKvdc011zz4xV7sxV6bB7jvvvtuPXv27K2/9Vu/9T2/9Vu/9d38D3TNNdc8+LVf+7Xf63Ve53Xe+5prrnkwz+W+++679eu//uvf5x/+4R9+m3+jF3uxF3vtz/3cz/2tf/iHf/jtz/zMz3wdrrrqqquuuur/DvSgBz2Iq6666qqrrvq/6MVe7MVe+3M/93N/67777rv17Nmzt77Yi73Ya//DP/zDb3/mZ37m6/Cf5Jprrnnwa7/2a7/XO73TO302z/QjP/Ijn/2jP/qjn8Pzcc011zz4xV7sxV77dV7ndd7rxV7sxV6bZ7rvvvtu/Yd/+Iff/od/+Iffue+++279h3/4h9/mv8k111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bR7gvvvuu/W3fuu3vvsf/uEffucf/uEffpurrrrqf7xrrrnmwWfOnHnwi73Yi73Wi7/4i7/2i73Yi702z3Tffffd+g//8A+//Q//8A+/81u/9VvfzX+ja6655sGv/dqv/V6v8zqv897XXHPNg3mm++6779bf+q3f+u6zZ88+4x/+4R9++8M//MO/68Ve7MVe+7777rv1t37rt777R3/0Rz+Hf4MXe7EXe+3P/dzP/a1/+Id/+O3P/MzPfB2uuuqqq6666v8O9KAHPYirrrrqqquu+r/qwz/8w7/rdV7ndd6bZ/rMz/zM1/mHf/iH3+Y/wTu+4zt+1ju90zt9Ns/0Iz/yI5/9oz/6o5/Di+iaa6558Gu/9mu/1zu90zt9Ns/lvvvuu/Xs2bO33nfffbf+wz/8w+/81m/91nfzn+Saa6558Iu92Iu99pkzZx70Tu/0Tp/Nc/mHf/iH3/77v//73/7t3/7t77nvvvtu5aqrrvpf7Zprrnnwi73Yi73267zO67zXi73Yi702z3Tffffd+g//8A+//Vu/9Vvf8w//8A+/zX+Ba6655sGv/dqv/V6v8zqv897XXHPNg3mm++6779bf+q3f+u5/+Id/+J1/+Id/+G0e4Jprrnnwa7/2a7/XO73TO302wD/8wz/89td//de/z3333Xcr/wrXXHPNg7/pm77p6ffdd9+tH/IhH/IQrrrqqquuuur/DvSgBz2Iq6666qqrrvq/6pprrnnwN33TNz0d4Ed+5Ec++0d/9Ec/h/9gL/ZiL/baH/7hH/5d11xzzYMB7rvvvls/67M+63Xuu+++W/k3uuaaax78Yi/2Yq/9Yi/2Yq91zTXXPPjFXuzFXpvnct999936D//wD7/9D//wD79z33333foP//APv82/0TXXXPPg137t136vF3/xF3/tF3uxF3ttHuC+++679bd+67e++x/+4R9+5x/+4R9+m6uuuur/rGuuuebBr/3ar/1eL/7iL/7aL/ZiL/baPNN999136z/8wz/89m/91m99zz/8wz/8Nv+Brrnmmge/9mu/9nu9zuu8zntfc801D+aZ7rvvvlt/67d+67v/4R/+4Xf+4R/+4bf5F7zYi73Ya3/4h3/4d11zzTUPvu+++279+q//+vf5h3/4h9/mRXTNNdc8+Ju+6Zueft999936IR/yIQ/hqquuuuqqq/7vQA960IO46qqrrrrqqv+r3vEd3/Gz3umd3umzAe67775bP+RDPuQh/Ae55pprHvzhH/7h3/ViL/Zirw1w33333fr1X//17/MP//APv81/sGuuuebBZ86cefCLvdiLvdaLv/iLv/aLvdiLvTbP5b777rv1H/7hH377H/7hH37nvvvuu/Uf/uEffpsX4JprrnnwmTNnHvxiL/Zir/VO7/ROn81zue+++279rd/6re/+7d/+7e+57777buWqq676f+eaa6558Gu/9mu/14u/+Iu/9ou92Iu9Ns9033333fpbv/Vb3/0P//APv/MP//APv82/wTXXXPPg137t136v13md13nva6655sE803333Xfrb/3Wb333P/zDP/zOP/zDP/w2/0rXXHPNgz/8wz/8u17sxV7ste+7775bf+u3fuu7f/RHf/RzeBH9xE/8hAE+5EM+5CH33XffrVx11VVXXXXV/w3oQQ96EFddddVVV131f9GLvdiLvfbnfu7n/hbAfffdd+s111zz4K//+q9/n9/6rd/6bv6dXud1Xue9P/zDP/y7AO67775bf+u3fuu7f/RHf/Rz+C9yzTXXPBjgxV7sxV77xV7sxV7rdV7ndd6b53Lffffdevbs2Vvvu+++W//hH/7hd/7hH/7ht1/7tV/7vV78xV/8tV/sxV7stXmA++6779bf+q3f+u6zZ88+47d+67e+m6v+z7jmmmsezDOdOXPmwfw7nT179lb+je67775buep/pWuuuebBr/3ar/1er/M6r/Pe11xzzYN5pvvuu+/W3/qt3/ru3/7t3/6e++6771ZeiGuuuebBr/3ar/1e7/RO7/TZPMB9991362/91m999z/8wz/8zj/8wz/8Nv9O11xzzYNf+7Vf+73e6Z3e6bMB/uEf/uG3v/7rv/597rvvvlt5IV7sxV7stT/3cz/3t/7hH/7htz/zMz/zdbjqqquuuuqq/zvQgx70IK666qqrrrrq/6LXeZ3Xee8P//AP/67f+q3f+u5/+Id/+J13fMd3/CyA3/qt3/ruH/3RH/0c/o0+/MM//Lte53Ve570BfuRHfuSzf/RHf/Rz+B/gmmuuefCLvdiLvfaLvdiLvdY111zz4Bd7sRd7bf4FP/IjP/LZv/3bv/099913361c9T/GNddc82Ce6cyZMw8GuOaaax4McObMmQfxTNdcc82DAa655poH80xnzpx5MMA111zzYP6Xuu+++24FOHv27K333XffrQD33XffrWfPnn0GwH333XcrwNmzZ2+97777buWq/zLXXHPNg8+cOfPg13md13mv13md13lvHuAf/uEffvu3fuu3vue3fuu3vptnuuaaax782q/92u/1Tu/0Tp/NA9x33323/tZv/dZ3/8M//MPv/MM//MNv85/gxV7sxV77wz/8w7/rmmuuefBv/dZvfffXf/3Xvw8vxDd90zc9/Zprrnnw13/917/Pb/3Wb303V1111VVXXfV/B3rQgx7EVVddddVVV/1f9E3f9E1Pv+aaax78mZ/5ma/zD//wD7/9Oq/zOu/94R/+4d8F8CM/8iOf/aM/+qOfw7/S537u5/7Wi73Yi702wGd+5me+zj/8wz/8Nv8DXXPNNQ/+8A//8O96sRd7sdfmhbjvvvtu/Yd/+Iff/od/+Iffue+++279h3/4h9/mqn+Xa6655sEAZ86ceTDANddc82CAM2fOPIhnuuaaax4McM011zwY4MyZMw8GuOaaax7Mf7D77rvvVp7p7Nmzt/LvdObMmQfzb3TNNdc8mP8k9913360AZ8+evfW+++67FeC+++679ezZs88AuO+++24FOHv27K333XffrVz173bNNdc8+MVe7MVe+8Ve7MVe63Ve53Xem2e67777bv2Hf/iH336d13md9+YB7rvvvlt/67d+67v/4R/+4Xf+4R/+4bf5L3DNNdc8+HM+53N+65prrnnwb/3Wb33313/9178Pz8c7vuM7ftY7vdM7ffY//MM//PZnfuZnvg5XXXXVVVdd9X8LetCDHsRVV1111VVX/V/0Td/0TU+/5pprHvwhH/IhD7nvvvtuBXjHd3zHz3qnd3qnzwa47777bv2sz/qs17nvvvtu5V9wzTXXPPjDP/zDv+vFXuzFXvu+++679eu//uvf5x/+4R9+m/9Brrnmmge/9mu/9nu9zuu8zntfc801D+aZfuRHfuSz/+Ef/uF3zp49eyvAi73Yi732i73Yi73W67zO67w3z+W+++679ezZs7fed999t/7DP/zD7/zWb/3Wd3PVc7jmmmseDPBiL/Zir33mzJkHAbz4i7/4awO82Iu92GvzH+S+++67FeDs2bO3Atx33323Atx333238gBnz559xn333Xcrz3T27NlbAe67775b+V/qmmuueTDAmTNnHnzNNdc8GODMmTMPuuaaax4McM011zwY4MyZMw++5pprHsy/0X333XcrwNmzZ2+97777buWZ/uEf/uF3AO67775bz549e+t99913K1c9j2uuuebBAK/92q/9Xtdcc82DX+d1Xue9eT7uu+++W7/+67/+ff7hH/7ht/lvcM011zz4m77pm55+33333fr1X//17/MP//APv80DvNiLvdhrf+7nfu5vAXzmZ37m6/zDP/zDb3PVVVddddVV/7egBz3oQVx11VVXXXXV/0Xf9E3f9PRrrrnmwR/yIR/ykPvuu+9Wnumaa6558Od8zuf81jXXXPPg++6779bf+q3f+u4f/dEf/RxegGuuuebB3/RN3/R0gPvuu+/Wr//6r3+ff/iHf/ht/oe45pprHvzar/3a7/VO7/ROn80z3Xfffbf+1m/91nf/6I/+6OfwQlxzzTUPfrEXe7HXfrEXe7HXuuaaax78Yi/2Yq/Nc7nvvvtu/Yd/+Iff/od/+Iffue+++279h3/4h9/m/7BrrrnmwWfOnHnwNddc8+AzZ848CODFX/zFX/vMmTMPvuaaax7Mv+C+++67FeDs2bO3Atx33323Atx333238kxnz559BsB99913K8DZs2dvBbjvvvtu5ap/k2uuuebBAGfOnHnwNddc82CAM2fOPOiaa655MMA111zzYIAzZ848+Jprrnkw/wr33XffrQD/8A//8NsA//AP//A79913363/8A//8Nv8P3HNNdc8+MyZMw9+sRd7sde65pprHvxiL/Zir33NNdc8mOfjvvvuu/W3fuu3vvvFX/zFX/vFXuzFXhvgvvvuu/W3fuu3vvtHf/RHP4f/Bu/4ju/4We/0Tu/02ffdd9+tH/IhH/IQHuBzP/dzf+vFXuzFXvu3fuu3vvvrv/7r34errrrqqquu+r8HPehBD+Kqq6666qqr/i/6iZ/4CQO83du9nXgu11xzzYNf+7Vf+73e6Z3e6bMB/uEf/uG3v/7rv/597rvvvlt5gBd7sRd77c/93M/9LYB/+Id/+O3P/MzPfB3+h3jHd3zHz3qd13md977mmmsezDPdd999t/7oj/7o5/zWb/3Wd/NvcM011zz4zJkzD36xF3ux13rxF3/x136xF3ux1+a53HfffbcCnD179tb77rvv1n/4h3/4HYD77rvv1n/4h3/4bf6Hu+aaax585syZB19zzTUPPnPmzIMAXvzFX/y1z5w58+BrrrnmwfwL7rvvvlsB/uEf/uG377vvvlsB/uEf/uF3AP7hH/7ht7nqf41rrrnmwQBnzpx58DXXXPNggDNnzjzommuueTDANddc8+AzZ848+JprrnkwL8B9991369mzZ2+97777bv2Hf/iH37nvvvtu/Yd/+Iff5n+xa6655sGv/dqv/V4AL/7iL/7aL/ZiL/bavAD33Xffrf/wD//w2/fdd9+t//AP//A7//AP//DbPMDrvM7rvPfrvM7rvNeLvdiLvTbAfffdd+tv/dZvffeP/uiPfg7/ha655poHf/iHf/h3vdiLvdhr/9Zv/dZ3f/3Xf/37ALzO67zOe3/4h3/4d9133323fsiHfMhDuOqqq6666qr/m9CDHvQgrrrqqquuuur/op/4iZ8wwNu93duJF+DFXuzFXvvDP/zDv+uaa6558H333Xfr13/917/PP/zDP/w2wOu8zuu894d/+Id/F8A//MM//PZnfuZnvg7/za655poHv/Zrv/Z7vdM7vdNn80z33Xffrb/1W7/13b/927/9Pffdd9+t/Ae65pprHgzwYi/2Yq/9Yi/2Yq/1Yi/2Yq99zTXXPJgX4r777rsV4B/+4R9+G+Af/uEffue+++679ezZs7fed999t/Kf7JprrnnwmTNnHnzNNdc8+MyZMw+65pprHnzNNdc8+MyZMw++5pprHsy/4L777rsV4B/+4R9++7777rsV4B/+4R9+B+Af/uEffpur/t+55pprHgzwYi/2Yq/9Yi/2Yq8FcM011zz4xV7sxV6bF+C+++679ezZs7fed999t/7DP/zD7wDcd999t/7DP/zDb/M/xDXXXPPgM2fOPPjFXuzFXuuaa6558DXXXPPgF3uxF3ttno/77rvv1rNnz97693//978N8A//8A+/8w//8A+/zYvodV7ndd77Hd/xHT/rmmuueTDAfffdd+uP/uiPfs5v/dZvfTf/Ra655poHf9M3fdPTAb7+67/+fX7rt37ru3/iJ37CAJ/5mZ/5Ov/wD//w21x11VVXXXXV/03oQQ96EFddddVVV131f80111zz4G/6pm96+n333Xfrh3zIhzyEF+Kaa6558Id/+Id/14u92Iu99n333Xfrb/3Wb303wDu90zt9NsCP/MiPfPaP/uiPfg7/jV7sxV7stV/ndV7nvV7ndV7nvXmm++6779bf+q3f+u4f/dEf/Rz+C11zzTUPBnixF3ux1wZ4sRd7sde65pprHgzwYi/2Yq/Nv+C+++679ezZs7fed999t9533323nj179hn33XffrWfPnr31vvvuu5UX0TXXXPNggNd+7dd+r2uuuebBL/ZiL/ba11xzzYP5F9x33323nj179tb77rvv1vvuu+9WgH/4h3/4nbNnz95633333cpVV72IrrnmmgcDvNiLvdhrA7zYi73Ya11zzTUPfrEXe7HX5gW47777bgX4h3/4h98G+Id/+Iffue+++279h3/4h9/mP9E111zz4Nd+7dd+L4AXf/EXf+0Xe7EXe21egPvuu+/Wf/iHf/jt++6779Z/+Id/+J1/+Id/+G3+A1xzzTUPfrEXe7HXfsd3fMfPuuaaax4McN999936oz/6o5/zW7/1W9/Nf4HXeZ3Xee8P//AP/6777rvv1rNnz976Yi/2Yq/9D//wD7/9mZ/5ma/DVVddddVVV/3fhR70oAdx1VVXXXXVVf/XvNiLvdhrf+7nfu5v/cM//MNvf+Znfubr8C+45pprHvzar/3a7/VO7/ROn80DfP3Xf/37/NZv/dZ389/gmmuuefBrv/Zrv9c7vdM7fTYP8CM/8iOf/du//dvfc999993K/0DXXHPNg8+cOfPga6655sEAL/ZiL/Za11xzzYPPnDnz4GuuuebBvBD33XffrQBnz5699b777rv1H/7hH34H4L777rv17Nmzt772a7/2ewG8+Iu/+Gu/2Iu92GvzfNx33323nj179tb77rvv1vvuu+/Ws2fPPuO+++679ezZs7fed999t3LVVf8FrrnmmgefOXPmwddcc82DX+zFXuy1rrnmmgefOXPmwddcc82DeQHuu+++W8+ePXvrfffdd+s//MM//M5v/dZvfTf/Stdcc82Dz5w58+AXe7EXe61rrrnmwddcc82DX+zFXuy1eT7uu+++W8+ePXvr3//93/82wD/8wz/8zj/8wz/8Nv/Jrrnmmge/9mu/9nu9zuu8zntfc801Dwa47777bv36r//69/mHf/iH3+Y/2ed+7uf+1ou92Iu9Ns/0IR/yIQ+57777buWqq6666qqr/u9CD3rQg7jqqquuuuqq/2te53Ve570//MM//Lt+67d+67u//uu//n14EVxzzTUP/vAP//DverEXe7HXBrjvvvtu/a3f+q3v/tEf/dHP4b/QNddc8+DXfu3Xfq93eqd3+mye6b777rv1t37rt777R3/0Rz+H/+WuueaaB585c+bB11xzzYPPnDnzoGuuuebB11xzzYPPnDnz4GuuuebB/Cv9wz/8w28D/MiP/Mjn/MM//MNvc9VV/4Ndc801DwZ4sRd7sdcGeLEXe7HXuuaaax78Yi/2Yq/N83Hffffd+g//8A+//Q//8A+/81u/9VvfzQNcc801D37t137t9wJ48Rd/8dd+sRd7sdfmBbjvvvtu/Yd/+Iffvu+++279h3/4h9/5h3/4h9/mv9k111zz4Nd+7dd+r9d5ndd572uuuebBAPfdd9+tX//1X/8+//AP//Db/Ce55pprHvxN3/RNTwf4h3/4h9/+zM/8zNfhqquuuuqqq/5vQw960IO46qqrrrrqqv9rXud1Xue9P/zDP/y7fuu3fuu7v/7rv/59+Bdcc801D/7wD//w73qxF3ux177vvvtu/Yd/+Ifffp3XeZ33BviRH/mRz/7RH/3Rz+E/2eu8zuu89zu+4zt+1jXXXPNgnukf/uEffvu3fuu3vue3fuu3vpv/o6655poHv9iLvdhrnzlz5kGv8zqv897XXHPNg/k3uu+++249e/bsrffdd9+t9913361nz559xn333Xfr2bNnb73vvvtu5aqr/ge75pprHvxiL/Zir33mzJkHvdM7vdNn83zcd999twJcc801D+b5uO+++249e/bsrX//93//2wD/8A//8Dv/8A//8Nv8D3bNNdc8+LVf+7Xf653e6Z0+m2f6rd/6re/+rd/6re/5h3/4h9/mP9g7vuM7ftY7vdM7fTbAfffdd+vXf/3Xv88//MM//DZXXXXVVVdd9X8XetCDHsRVV1111VVX/V/zju/4jp/1Tu/0Tp/9Iz/yI5/9oz/6o5/DC3HNNdc8+Ju+6ZueDnDffffd+iEf8iEPAXjHd3zHz3qnd3qnzwa47777bv2sz/qs17nvvvtu5T/Yi73Yi732h3/4h3/XNddc82CA++6779bf+q3f+u4f/dEf/Rz+j7nmmmse/GIv9mKvfebMmQe9+Iu/+Gu/2Iu92GvzfNx33323/sM//MNv33fffbf+wz/8w+/8wz/8w28DXHPNNQ8+c+bMg6+55poHA7zYi73Ya11zzTUPPnPmzIOvueaaB/NC3HfffbcCnD179tb77rvv1n/4h3/4HYD77rvvVp7p7NmztwLcd999t3LVVf8BrrnmmgcDnDlz5sHXXHPNg8+cOfMgnunFX/zFXxvgzJkzD77mmmsezL/Db/3Wb33313/9178P/4tdc801D37t137t93qnd3qnzwa47777bv2Hf/iH3/7RH/3Rz7nvvvtu5d/pmmuuefCHf/iHf9eLvdiLvfY//MM//DbAi73Yi732fffdd+uHfMiHPISrrrrqqquu+r8LPehBD+Kqq6666qqr/q95x3d8x896p3d6p8/+kR/5kc/+0R/90c/hhfimb/qmp19zzTUP/od/+Iff/szP/MzX4QGuueaaB3/O53zOb11zzTUPvu+++279rd/6re/+0R/90c/hP8A111zz4Hd8x3f8rNd5ndd5b4D77rvv1t/6rd/67h/90R/9HP4PuOaaax585syZB7/Yi73Ya734i7/4a7/Yi73Ya/N83HfffbeePXv21r//+7//7X/4h3/4nX/4h3/4bf6NrrnmmgefOXPmwddcc82Dz5w586Brrrnmwddcc82Dz5w58+Brrrnmwfwr3XfffbfyTGfPnr0V4L777rsV4L777rsV4OzZs8/gme67775bAc6ePXsrwH333XcrV/2fcs011zwY4MyZMw++5pprHnzmzJkH8UzXXHPNg6+55poHnzlz5sHXXHPNg/k3uO+++24FOHv27K333Xffrffdd9+tAGfPnn3GfffddyvAi73Yi73Wi7/4i7/2i73Yi702z+W+++679R/+4R9++7d+67e+5x/+4R9+m/+Frrnmmge/9mu/9nu90zu902cD3Hfffbf+1m/91nf/6I/+6Ofwb/Q6r/M67/3hH/7h3wVw33333fr1X//173P27NlbP+dzPue3rrnmmgd/yId8yEPuu+++W7nqqquuuuqq/5vQgx70IK666qqrrrrq/5oP//AP/67XeZ3Xee+v//qvf5/f+q3f+m5egHd8x3f8rHd6p3f67H/4h3/47c/8zM98HZ6Pa6655sGv/dqv/V7v9E7v9NkA9913360/+qM/+jm/9Vu/9d38G73jO77jZ73TO73TZ/NMP/IjP/LZP/qjP/o5/C92zTXXPPi1X/u13+uaa6558Ou8zuu8N8/Hfffdd+vZs2dv/fu///vf/od/+Iff+Yd/+Iff5r/INddc82CAM2fOPPiaa6558JkzZx50zTXXPPiaa655MM905syZBwNcc801D+Y/0H333Xcrz3T27NlbAe67775beab77rvv1rNnzz6DZ7rvvvtuBTh79uytAPfdd9+tXPWf4pprrnkwwJkzZx58zTXXPBjgzJkzDwK45pprHnzNNdc8GODFXuzFXpt/g/vuu+9WgLNnz95633333XrffffdyjOdPXv2Gffdd9+tZ8+evfW+++67lX+la6655sFnzpx58Iu92Iu91ou/+Iu/9ou92Iu9Ng9w33333QrwD//wD7/9W7/1W9/zD//wD7/N/yLXXHPNg1/7tV/7vd7pnd7pswHuu+++Wz/rsz7rde67775beRFdc801D/7wD//w73qxF3ux1wb4h3/4h9/+zM/8zNfhmV7ndV7nvT/8wz/8u/7hH/7hdz7zMz/ztbnqqquuuuqq/5vQgx70IK666qqrrrrq/5rXeZ3Xee93fMd3/Kx/+Id/+O2v//qvfx+ej2uuuebB3/RN3/R0gM/8zM98nX/4h3/4bV6Id3zHd/ysF3/xF3/tF3uxF3ttgPvuu+/W3/qt3/ru3/7t3/6e++6771ZeBNdcc82DP+dzPue3rrnmmgcD/MM//MNvf/3Xf/373Hfffbfyv9A111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bR7gvvvuu/Xs2bO3/v3f//1v/8M//MPv/MM//MNv87/MNddc82Ce6cyZMw8GuOaaax4McObMmQcBXHPNNQ/mma655poHA5w5c+bBANdcc82D+Q9033333coznT179laA++6771ae6b777rsV4OzZs88AuO+++27lmc6ePXsrwH333XcrL8Q111zzYP6Vzpw582D+la655poH86905syZB/GvdM011zyYB7jmmmseDHDmzJkHX3PNNQ/mX+m+++67FeDs2bO33nfffbcC3HfffbcCnD179hn33XffrWfPnr31vvvuu5X/Ytdcc82Dz5w58+AXe7EXe60Xf/EXf+0Xe7EXe20e4L777rsV4B/+4R9++7d+67e+5x/+4R9+m/8Frrnmmgd/zud8zm9dc801D77vvvtu/dEf/dHP+a3f+q3v5l/wOq/zOu/94R/+4d8FcN9999369V//9e/zD//wD7/NA7zYi73Ya3/u537ub/3DP/zD73zmZ37ma3PVVVddddVV/zehBz3oQVx11VVXXXXV/zUv9mIv9tqf+7mf+1v33XffrZ/1WZ/1Ovfdd9+tPJfP/dzP/a0Xe7EXe+3f+q3f+u6v//qvfx9eBNdcc82DX+zFXuy1X+d1Xue9XuzFXuy1Ae67775b/+Ef/uG3f+u3fut7/uEf/uG3eT6uueaaB7/2a7/2e73TO73TZwPcd999t37913/9+/zDP/zDb/O/zDXXXPPg137t136v13md13nva6655sE8wD/8wz/89t///d//9o/+6I9+Dlc9yzXXXPNgnunMmTMPBrjmmmsezDOdOXPmQddcc82DeaZrrrnmwQBnzpx5MMA111zzYK76T3HffffdCnD27NlbAe67775b77vvvlsBzp49+4z77rvvVoB/+Id/+G3+l7nmmmsefObMmQe/2Iu92Gu9+Iu/+Gu/2Iu92GvzAPfdd9+tZ8+evfW3fuu3vue3fuu3vpv/wa655poHv/Zrv/Z7vdM7vdNn33fffbf+1m/91nf/6I/+6OfwfFxzzTUP/vAP//DverEXe7HXBviHf/iH3/7Mz/zM1+H5uOaaax78Td/0TU8/e/bsMz74gz/4wVx11VVXXXXV/03oQQ96EFddddVVV131f9Hnfu7n/taLvdiLvfZv/dZvfffXf/3Xvw8P8GIv9mKv/bmf+7m/BfAhH/IhD7nvvvtu5V/pmmuuefA7vuM7ftbrvM7rvDfPdN999936W7/1W9/9oz/6o5/DM73jO77jZ73TO73TZ/NMP/IjP/LZP/qjP/o5/C/yYi/2Yq/9Yi/2Yq/1Tu/0Tp/NA9x33323/tZv/dZ3nz179hm/9Vu/9d1c9Z/qmmuueTDPdObMmQcDXHPNNQ/mmc6cOfMggGuuuebBANdcc82DeaYzZ848GOCaa655MC/Efffddyv/SmfPnr2Vf6X77rvvVv6V7rvvvlv5Vzp79uwzeID77rvvVoCzZ8/eet99993K/yPXXHPNg8+cOfPgF3uxF3utF3/xF3/tF3uxF3ttnum+++679R/+4R9++7d+67e+5x/+4R9+m/+h3vEd3/Gz3umd3umzAX7kR37ks3/0R3/0c3iA13md13nvD//wD/8ugPvuu+/Wr//6r3+ff/iHf/htXoBrrrnmwd/0Td/09LNnzz7jgz/4gx/MVVddddVVV/3fhB70oAdx1VVXXXXVVf8XXXPNNQ/+pm/6pqffd999t37913/9+/zDP/zDb/NM3/RN3/T0a6655sFf//Vf/z6/9Vu/9d38O1xzzTUPfu3Xfu33ep3XeZ33vuaaax4McN999936D//wD7/9Yi/2Yq99zTXXPBjgH/7hH37767/+69/nvvvuu5X/4a655poHv/Zrv/Z7XXPNNQ9+ndd5nffmAe67775bf+u3fuu7/+Ef/uF3/uEf/uG3ueqqq/5Xuuaaax78Yi/2Yq/9Oq/zOu/1Yi/2Yq/NM9133323/tZv/dZ3//Zv//b33HfffbfyP8zrvM7rvPeHf/iHfxfAfffdd+tnfdZnvQ7Ah3/4h3/Xi73Yi702wD/8wz/89md+5me+Di+Cn/iJnzDA273d24mrrrrqqquu+r8JPehBD+Kqq6666qqr/q/68A//8O96ndd5nff+rd/6re/++q//+vcBeMd3fMfPeqd3eqfP/od/+Iff/szP/MzX4T/INddc8+AXe7EXe+13fMd3/KxrrrnmwTzAb/3Wb33313/9178P/4Ndc801D37t137t93rxF3/x136xF3ux1+YB7rvvvlt/67d+67t/+7d/+3vuu+++W7nqqqv+T7nmmmse/Nqv/drv9U7v9E6fzTPdd999t/7DP/zDb//DP/zD7/zWb/3Wd/M/yJkzZx70uZ/7ub99zTXXPPi+++679ZprrnkwwH333Xfrb/3Wb333j/7oj34OL6Jv+qZvevo111zz4A/5kA95yH333XcrV1111VVXXfV/D3rQgx7EVVddddVVV/1fdc011zz4m77pm54O8Jmf+Zmvc/bs2Vu/6Zu+6ekAn/mZn/k6//AP//Db/Ad6x3d8x896p3d6p8/m+bjvvvtu/a3f+q3v/u3f/u3vue+++27lf4Brrrnmwa/92q/9Xq/zOq/z3tdcc82DeYB/+Id/+O2///u//+0f/dEf/Ryu+l/lmmuueTDAmTNnHgxwzTXXPBjgzJkzD+JfcPbs2Wfwr3Tffffdyr/C2bNnb+WFuO+++27lqv8W11xzzYNf7MVe7LVf7MVe7LVe53Ve5715pvvuu+/W3/qt3/ruf/iHf/idf/iHf/ht/gd4sRd7sdf+8A//8O+65pprHgxw33333fohH/IhD+Ff6XM/93N/68Ve7MVe+zM/8zNf5x/+4R9+m6uuuuqqq676vwc96EEP4qqrrrrqqqv+L/vwD//w73qd13md9/6Hf/iH3wZ4sRd7sdf+rd/6re/++q//+vfhP8g111zz4M/5nM/5rWuuuebBAP/wD//w21//9V//PgAv9mIv9tqv8zqv814v9mIv9toA9913363/8A//8Nu/9Vu/9T3/8A//8Nv8F3uxF3ux136xF3ux13qnd3qnz+YB7rvvvlt/67d+67vPnj37jN/6rd/6bq76L3XNNdc8mGc6c+bMgwGuueaaBwOcOXPmQTzTNddc82CAa6655sEAZ86ceTDANddc82D+D7nvvvtuBTh79uyt9913360A9913361nz559BsB99913K8DZs2dvve+++27lqv9w11xzzYNf+7Vf+71e/MVf/LVf7MVe7LV5pvvuu+/W3/qt3/ruH/3RH/0c/pu8zuu8znt/+Id/+HcB3Hfffbdec801Dwb4kR/5kc/+0R/90c/hX+FzP/dzf+vFXuzFXvszP/MzX+cf/uEffpurrrrqqquu+r8HPehBD+Kqq6666qqr/i+75pprHvxN3/RNT+cBPuRDPuQh99133638B3jHd3zHz3qnd3qnzwa47777bv36r//69/mHf/iH3+a5XHPNNQ9+x3d8x896ndd5nffmme67775bf+u3fuu7f/RHf/Rz+E/0Yi/2Yq/9Oq/zOu/1Oq/zOu/NA9x33323/tZv/dZ3/8M//MPv/MM//MNvc9W/yzXXXPNggDNnzjz4mmuuefCZM2cexDNdc801Dwa45pprHgxw5syZBwNcc801D+Y/2H333XcrwNmzZ28FuO+++24FuO+++27lX3DNNdc8mH+la6655sH8K5w5c+bBvADXXHPNg/k3uO+++24FOHv27K333XffrQD33XffrWfPnn0GwH333XcrwNmzZ2+97777buWqf5Vrrrnmwa/92q/9Xu/0Tu/02TzTfffdd+s//MM//PZv/dZvfc8//MM//Db/Ba655poHf/iHf/h3vdiLvdhrA/zDP/zDb3/mZ37m67zjO77jZ73TO73TZwP8wz/8w29/5md+5uvwIvrcz/3c33qxF3ux1/76r//69/mt3/qt7+aqq6666qqr/u9BD3rQg7jqqquuuuqq/+te53Ve570//MM//LsAvv7rv/59fuu3fuu7+Xe65pprHvzhH/7h33XmzJkHX3PNNQ/+kR/5kc/+0R/90c/hX3DNNdc8+LVf+7Xf63Ve53Xe+5prrnkwwH333XfrP/zDP/z2b/3Wb33PP/zDP/w2/0He8R3f8bNe53Ve572vueaaB/NM9913362/9Vu/9d2//du//T333XffrVz1r3LNNdc8+MyZMw9+sRd7sdcCuOaaax58zTXXPPjFXuzFXpt/h/vuu+9Wnuns2bO3Atx33323Atx333238kxnz559BsB99913K8DZs2dvBbjvvvtu5f+Qa6655sEAZ86cefA111zzYIAzZ8486JprrnkwwDXXXPPgM2fOPPiaa655MP8G9913360AZ8+evfW+++67FeC+++679ezZs88AuO+++279h3/4h9/mqudwzTXXPPjFXuzFXvt1Xud13uvFXuzFXptnuu+++279rd/6re/+7d/+7e+57777buU/0DXXXPPg137t136vd3qnd/psnum+++679bd+67e++0d/9Ec/h2c6c+bMgz73cz/3t6+55poH33fffbd+1md91uvcd999t/IveMd3fMfPeqd3eqfP/pEf+ZHP/tEf/dHP4aqrrrrqqqv+70EPetCDuOqqq6666qr/697xHd/xs97pnd7pswG+/uu//n1+67d+67v5d7jmmmse/OEf/uHf9WIv9mKvfd999936WZ/1Wa9z33333cq/wjXXXPPgF3uxF3vt13md13mvF3uxF3ttnum+++679Ud/9Ec/57d+67e+m3+Da6655sGv/dqv/V7v9E7v9Nk803333Xfrb/3Wb333j/7oj34OV71Q11xzzYPPnDnz4GuuuebBZ86cedA111zz4GuuuebBL/ZiL/bavAjuu+++W8+ePXvrfffdd+t99913K8909uzZZwDcd999twKcPXv2VoD77rvvVq76d7vmmmseDHDmzJkHX3PNNQ8GOHPmzIOuueaaBwNcc801Dz5z5syDr7nmmgfzr3Dffffdevbs2Vvvu+++W//hH/7hd+67775b/+Ef/uG3uYprrrnmwa/92q/9Xq/zOq/z3tdcc82Deab77rvv1q//+q9/n3/4h3/4bf6Nrrnmmge/9mu/9nu9zuu8zntfc801D+aZ7rvvvlt/67d+67t/9Ed/9HN4Pq655poHf87nfM5vXXPNNQ++7777bv2sz/qs17nvvvtu5YV4x3d8x896p3d6p8/+kR/5kc/+0R/90c/hqquuuuqqq/7vQQ960IO46qqrrrrqqv/rfuInfsI803333Xfrh3zIhzyEf6Nrrrnmwd/0Td/0dID77rvv1g/5kA95CP9O11xzzYNf+7Vf+73e6Z3e6bN5pvvuu+/Wf/iHf/jtf/iHf/id3/qt3/pu/gXXXHPNg1/7tV/7vd7pnd7ps3mm++6779Yf/dEf/Zzf+q3f+m6uuuyaa655MMCLvdiLvfaZM2ceBPDiL/7ir33mzJkHX3PNNQ/mX3Dffffdevbs2Vvvu+++W++7775bz549+4z77rvv1n/4h3/4ba76X+Oaa655MMCZM2cefM011zwY4MyZMw+65pprHgxwzTXXPPjFXuzFXpsX4L777rv17Nmzt9533323/sM//MPv3Hfffbf+wz/8w2/z/9Q111zz4Hd8x3f8rNd5ndd5b57pvvvuu/VHf/RHP+e3fuu3vpsXwTXXXPPg137t136vF3/xF3/tF3uxF3ttnum+++679bd+67e++7d/+7e/57777ruVf8E1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9m//9vfcd999t/JM11xzzYMBXuzFXuy1X+d1Xue9XuzFXuy1eS733Xffrf/wD//w2//wD//wO7/1W7/13fwPc8011zz4tV/7td8L4J3e6Z0+m+fjvvvuu/Uf/uEffvu+++679R/+4R9+5x/+4R9+m6uu+l/qmmuueTDAi73Yi702wIu92Iu91jXXXPPgF3uxF3ttHuC+++679R/+4R9++x/+4R9+57d+67e+m/8Frrnmmge/9mu/9nu90zu902fzAD/yIz/y2S/+4i/+2i/2Yi/22gD33XffrV//9V//Pv/wD//w2/wnebEXe7HX/tzP/dzfuu+++279+q//+vf5h3/4h99+sRd7sdf+3M/93N8C+MzP/MzX+Yd/+Iff5qqrrrrqqqv+70IPetCDuOqqq6666qr/yz78wz/8u17ndV7nvb/+67/+fX7rt37ru3mma6655sGv/dqv/V7v9E7v9NkAP/IjP/LZP/qjP/o5PNPrvM7rvPeHf/iHfxfAj/zIj3z2j/7oj34O/wWuueaaB7/2a7/2e73O67zOe19zzTUPBrjvvvtu/a3f+q3v/tEf/dHP4UVwzTXXPBjgxV7sxV77dV7ndd7rxV7sxV6b53Lffffd+g//8A+//Q//8A+/81u/9VvfzX+ha6655sEv9mIv9tpnzpx50Iu/+Iu/9ou92Iu9Ns/lvvvuuxXgt37rt777H/7hH37nH/7hH36bq676f+Caa6558Iu92Iu99ou92Iu91uu8zuu8Nw9w33333Xr27Nlb//7v//63/+Ef/uF3/uEf/uG3+R/immuuefBrv/Zrv9c7vdM7fTYPcN999936W7/1W9/9oz/6o5/DM73O67zOe7/jO77jZ11zzTUPBvit3/qt7/7RH/3Rz7nvvvtu5T/Bh3/4h3/X67zO67z3P/zDP/z2Z37mZ77O537u5/7Wi73Yi732b/3Wb33313/9178PV1111VVXXfV/G3rQgx7EVVddddVVV/1f9rmf+7m/9WIv9mKv/Zmf+Zmv8w//8A+/zXN5x3d8x896p3d6p88GuO+++279rM/6rNd57dd+7fd6p3d6p88G+Pqv//r3+a3f+q3v5r/A67zO67z3h3/4h38Xz3Tffffd+lu/9Vvf/aM/+qOfw7/DNddc82CAF3uxF3vt13md13mvF3uxF3ttnst999136z/8wz/89j/8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+7Vf+71e53Ve572vueaaB/MA//AP//Dbf//3f//bANdcc82Dr7nmmge/2Iu92GvzQtx33323AvzDP/zDbwP8wz/8w+/cd999t549e/bW++6771auuuqqf7drrrnmwS/2Yi/22mfOnHnQi7/4i7/2i73Yi702L8R9991362/91m9994/+6I9+Dv+DXHPNNQ/+pm/6pqcD3Hfffbd+1md91uvcd999t/Kv9GIv9mKv/bmf+7m/BfAhH/IhD/nwD//w7zpz5syDv/7rv/59/uEf/uG3ueqqq6666qr/29CDHvQgrrrqqquuuur/qmuuuebB3/RN3/T0++6779YP+ZAPeQjPx4u92Iu99ud+7uf+FsCHfMiHPOS+++67lWe65pprHvzar/3a7/VO7/ROnw3wIz/yI5/9oz/6o5/Dv9I111zz4A//8A//rhd7sRd7bYB/+Id/+O2v//qvf5/77rvvVv4Huuaaax782q/92u/1Oq/zOu99zTXXPJhnuu+++279rd/6re8+e/bsM37rt37ru3kBrrnmmgefOXPmwddcc82DAV7sxV7sta655poHv9iLvdhr80Lcd999twKcPXv21vvuu+/Wf/iHf/id++6779azZ8/eet99993KVf8hrrnmmgffd999t3LV/wnXXHPNg1/sxV7stc+cOfOgF3/xF3/tF3uxF3ttno/77rvv1n/4h3/47fvuu+/Wf/iHf/ida6655sGv8zqv814v9mIv9to803333Xfrj/7oj37Ob/3Wb303/0OcOXPmQZ/7uZ/729dcc82D77vvvls/67M+63Xuu+++W3kRveM7vuNnvdM7vdNnA3z913/9+/zWb/3Wd3/4h3/4d73O67zOe3/913/9+/zWb/3Wd3PVVVddddVV/7ehBz3oQVx11VVXXXXV/1Uv9mIv9tof/uEf/l1nz5699TM/8zNfh+fjcz/3c3/rxV7sxV77R37kRz77R3/0Rz+H5+Md3/EdP+ud3umdPhvgH/7hH377Mz/zM1+HF9E7vuM7ftY7vdM7fTbAfffdd+tv/dZvffeP/uiPfg7/w1xzzTUPfu3Xfu33ep3XeZ33vuaaax7MM9133323/tZv/dZ3nz179hm/9Vu/9d38O11zzTUPBnixF3ux1wZ4sRd7sde65pprHnzmzJkHX3PNNQ/mBbjvvvtuBTh79uyt9913363/8A//8Dv33XffrQD/8A//8Nv8P3DNNdc8mGc6c+bMgwGuueaaB585c+ZBPNM111zzYIBrrrnmwQBnzpx5MMA111zzYP4N7rvvvlt5EZ09e/ZW/gX33XffrfwL/uEf/uF3AO67775bAf7hH/7ht7nqsmuuuebBL/ZiL/baZ86cedCLv/iLv/aLvdiLvTbPx3333Xfr2bNnb/37v//73/6Hf/iH3/mHf/iH3+YFuOaaax782q/92u/1Tu/0Tp/NM9133323/tZv/dZ3//Zv//b33Hfffbfy3+yaa6558Od8zuf81jXXXPPg++6779bP+qzPep377rvvVl6Ia6655sEf/uEf/l0v9mIv9toAP/IjP/LZP/qjP/o5AO/4ju/4We/0Tu/02T/yIz/y2T/6oz/6OVx11VVXXXXV/23oQQ96EFddddVVV131f9lP/MRPGOAzP/MzX+cf/uEffpsHeJ3XeZ33/vAP//DvAni7t3s78UK82Iu92Gt/+Id/+Hddc801D77vvvtu/fqv//r3+Yd/+Iff5gW45pprHvzhH/7h3/ViL/Zirw3wD//wD7/9mZ/5ma/D/yDXXHPNg1/7tV/7vV7ndV7nva+55poH80z33Xffrb/1W7/13f/wD//wO//wD//w2/wXueaaax4M8GIv9mKvDfBiL/Zir3XNNdc8+MyZMw++5pprHswLcd9999169uzZW++7775b/+Ef/uF3AO67775b/+Ef/uG3+W92zTXXPJhnOnPmzIMBrrnmmgcDnDlz5kE80zXXXPPga6655sE805kzZx58zTXXPJj/YPfdd9+t11xzzYP5X+a+++67FeDs2bO33nfffbcC/MM//MPvANx33323Apw9e/bW++6771b+l7nmmmsefObMmQdfc801Dz5z5syDAK655poHX3PNNQ8GOHPmzIOvueaaB/N83HfffbeePXv21r//+7//7X/4h3/4nX/4h3/4bf4Nrrnmmge/2Iu92Gu/zuu8znu92Iu92GsD3Hfffbf+wz/8w2//wz/8w+/81m/91nfz3+iaa6558Gu/9mu/1zu90zt99tmzZ5/xm7/5m9/1oz/6o5/D8/GO7/iOn/VO7/ROnw1w33333fr1X//17/MP//APv80zveM7vuNnvdM7vdNn/8iP/Mhn/+iP/ujncNVVV1111VX/t6EHPehBXHXVVVddddX/Ze/4ju/4We/0Tu/02f/wD//w25/5mZ/5OjzAN33TNz39mmuuefDXf/3Xv89v/dZvfTf/gmuuuebBn/M5n/NbANdcc82Df+u3fuu7f+u3fut7/uEf/uG3eYB3fMd3/Kx3eqd3+myA++6779av//qvf59/+Id/+G3+B7jmmmse/Nqv/drv9U7v9E6fzQPcd999t/7Wb/3Wd//DP/zD7/zDP/zDb/M/zDXXXPNggBd7sRd7bYAXe7EXe61rrrnmwWfOnHnwNddc82BeiPvuu+/Ws2fP3nrffffd+g//8A+/A3Dffffd+g//8A+/zb/TNddc8+AzZ848+JprrnnwmTNnHnTNNdc8+JprrnkwwIu92Iu9Nv+B7rvvvlt5prNnz94KcN99991633333coznT179hkA9913360809mzZ2+97777buXf4JprrnkwL6IzZ848mH/BNddc82BeiDNnzjzommuueTDANddc8+AzZ848+Jprrnkw/0r33XffrQBnz5699b777rsV4B/+4R9+B+C+++67FeDs2bO33nfffbfyn+Saa655MMCZM2cefM011zz4zJkzDwK45pprHnzNNdc8+MyZMw++5pprHsy/wn333Xfr2bNnb/37v//73/6Hf/iH3/mHf/iH3+Y/wTXXXPPgd3zHd/ys13md13lvnuns2bPP+M3f/M3v+u3f/u3vue+++27lv8E111zz4Nd+7dd+r3d6p3f67Pvuu+/W3/qt3/ruH/3RH/0cnumaa6558Id/+Id/14u92Iu9NsBv/dZvfffXf/3Xvw/P5XVe53Xe+8M//MO/67d+67e+++u//uvfh6uuuuqqq676vw096EEP4qqrrrrqqqv+L7vmmmse/E3f9E1PB/jMz/zM1/mHf/iH3wZ4ndd5nff+8A//8O/6h3/4h9/+zM/8zNfhRXTNNdc8+MVe7MVe+8M//MO/i2e67777bv3RH/3Rz/mHf/iH3/7wD//w73qxF3ux1wb4kR/5kc/+0R/90c/hv9k111zz4Nd+7dd+r3d6p3f6bB7gvvvuu/W3fuu3vvsf/uEffucf/uEffpv/pa655poHA5w5c+bB11xzzYNf7MVe7LWuueaaBwO82Iu92GvzQtx333238kxnz569FeC+++67lWe67777bj179uwzAM6cOfMggBd/8Rd/bYAXe7EXe21eBPfdd9+tPNPZs2dvBbjvvvtuBbjvvvtu5ZnOnj37DID77rvvVoCzZ8/eCnDffffdyv9z11xzzYN5pjNnzjz4mmuueTDAi73Yi70WwDXXXPNggBd7sRd7bf6V7rvvvlsBzp49e+t99913K8A//MM//M5999136z/8wz/8Ns/lmmuuefCZM2cefM011zz4zJkzDwK45pprHnzNNdc8GODMmTMPvuaaax7Mv8J99913K8DZs2dvve+++2697777bgX4h3/4h98BOHv27K333XffrfwXu+aaax782q/92u/1Oq/zOu99zTXXPBjgvvvuu/Uf/uEffvu3fuu3vucf/uEffpv/Bu/4ju/4We/0Tu/02QA/8iM/8tk/+qM/+jkv9mIv9tqf+7mf+1sA9913361f//Vf/z7/8A//8Ns8H6/zOq/z3h/+4R/+Xf/wD//w25/5mZ/5Olx11VVXXXXV/23oQQ96EFddddVVV131f93rvM7rvPeHf/iHf9c//MM//PZnfuZnvg7AT/zETxjgMz/zM1/nH/7hH36bf6Vrrrnmwa/92q/9Xq/zOq/z3tdcc82DeYD77rvv1q//+q9/n3/4h3/4bf4bXXPNNQ9+7dd+7fd6p3d6p8/mme67775bf+u3fuu7/+Ef/uF3/uEf/uG3+X/gmmuuefCZM2cefM011zz4xV7sxV4L4Jprrnnwi73Yi702/0n+4R/+4bfvu+++WwHuu+++W8+ePfsMnum+++67FeDs2bO3Atx33323ctV/qGuuuebBAGfOnHnwNddc82CAF3uxF3stgGuuuebBAGfOnHnwNddc82D+Bffdd9+tANdcc82D+Ve47777bgU4e/bsrffdd9+t9913360AZ8+efcZ9991369mzZ2+97777buV/iRd7sRd7rdd5ndd579d5ndd5b57p7Nmzz/jN3/zN7/rRH/3Rz+G/2Du+4zt+1ju90zt9NsBv/dZvfffrvM7rvDfAP/zDP/z213/917/PfffddysvwIu92Iu99ud+7uf+1j/8wz/89md+5me+DlddddVVV131fxuVq6666qqrrvp/4B/+4R9+G+DFXuzFXvvFXuzFXvt1Xud13gvgH/7hH377H/7hH36bf4P77rvv1h/90R/9nN/+7d/+ns/5nM/5rWuuuebBPMCLvdiLvdbZs2dvve+++27lv9g111zz4Nd+7dd+r3d6p3f6bJ7pvvvuu/VHf/RHP+e3fuu3vpv/Z+67775beYAzZ848iCt++8Ve7MVem3/Bfffdd+vZs2dvve+++2695pprHgxw5syZBwNcc801D+b5eLEXe7HXfrEXezH+Ne67775beaazZ8/eCnDffffdCnDffffdCnD27NlnANx333238kxnz569FeC+++67lf+jrrnmmgfzIjhz5syDeS733Xffrddcc82D77vvvlt5pmuuuebBZ8+evRXgmmuueTAvxDXXXPNgXoj77rvv1rNnz976Iz/yI58DcPbs2Vvvu+++W/k/5h/+4R9+5x/+4R9+50d/9Ec/57Vf+7Xf63Ve53Xe+5prrnnwO73TO33267zO67z3P/zDP/z2b/3Wb33PP/zDP/w2/wV+9Ed/9HPOnj37jA//8A//rtd5ndd5b4Af+ZEf+ewf/dEf/Ryuuuqqq6666qoHQg960IO46qqrrrrqqv8PXud1Xue9P/zDP/y7/uEf/uG3X+zFXuy1AT7zMz/zdf7hH/7ht/l3+NzP/dzferEXe7HXvu+++279rd/6re9+8Rd/8dd+sRd7sdcGuO+++279h3/4h9/+rd/6re/5h3/4h9/mP9k111zz4Nd+7dd+r3d6p3f6bJ7pH/7hH37767/+69/nvvvuu5X/46655poHnzlz5sEv9mIv9loAL/7iL/7aZ86cefA111zzYF6I++6771aAs2fP3vr3f//3vw3wD//wD79z9uzZW++7775beRFcc801DwY4c+bMgwGuueaaB/NMZ86cedA111zzYJ7pmmuueTDAmTNnHgxwzTXXPJj/IPfdd9+tPNPZs2dvBbjvvvtu5Znuu+++W/kXXHPNNQ/mX3DNNdc8mH/BmTNnHsy/4Jprrnkw/wPcd999twKcPXv21vvuu+/W++6771aAs2fPPuO+++679Zprrnnwi73Yi73WNddc8+AzZ848+Jprrnkwz8d999136z/8wz/8NsA//MM//M5999136z/8wz/8Nv8HXXPNNQ9+sRd7sdd6sRd7sdd+ndd5nffmmf7hH/7ht7/+67/+fe67775b+U/0Yi/2Yq/9uZ/7ub/FA9x33323ftZnfdbr3HfffbfyQlxzzTUP/qZv+qan33fffbd+yId8yEO46qqrrrrqqv/b0IMe9CCuuuqqq6666v+Da6655sHf9E3f9HSe6bd+67e+++u//uvfh3+Hz/3cz/2tF3uxF3vt++6779av//qvf59/+Id/+G2Aa6655sHv+I7v+Fmv8zqv894803333Xfrj/7oj37Ob/3Wb303/8GuueaaB7/jO77jZ73O67zOe/NMP/IjP/LZv/3bv/0999133638H3XNNdc8+LVf+7XfC+Cd3umdPpsX4r777rv17Nmzt95333233nfffbeePXv2Gffdd9+t//AP//Db/A9xzTXXPJhnOnPmzIMBrrnmmgcDnDlz5kEA11xzzYMBrrnmmgfzTGfOnHnwNddc82D+D7vvvvtu5UVw9uzZW3k+7rvvvlvvu+++W3mmf/iHf/gdgLNnz95633333cq/0jXXXPPgM2fOPPiaa6558Iu92Iu91jXXXPPgF3uxF3ttno/77rvvVoB/+Id/+O1/+Id/+J377rvv1n/4h3/4bf4Pueaaax782q/92u/1Oq/zOu99zTXXPPi+++679bd+67e++0d/9Ec/h/8E7/iO7/hZ7/RO7/TZAP/wD//w21//9V//Pp/zOZ/zW9dcc82D77vvvls/5EM+5CG8ENdcc82Dv+mbvunp9913360f8iEf8hCuuuqqq6666v829KAHPYirrrrqqquu+v/iHd/xHT/rnd7pnT4b4EM+5EMect99993Kv9Hnfu7n/taLvdiLvfZ9991369d//de/zz/8wz/8Ns/lmmuuefBrv/Zrv9c7vdM7fTbPdN999936W7/1W9/9oz/6o5/Dv9M111zz4A//8A//rhd7sRd7bZ7pR37kRz77t3/7t7/nvvvuu5X/Q6655poHnzlz5sEv9mIv9lov/uIv/tov9mIv9to8l/vuu+/Ws2fP3vr3f//3vw3wD//wD78D8A//8A+/zf8T11xzzYN5pjNnzjwY4Jprrnkwz3TmzJkH8S84e/bsM/gX3HfffbfyLzh79uyt/Avuu+++W/k/5Jprrnnwi73Yi732i73Yi73WNddc8+AzZ848+Jprrnkwz8d9991369mzZ2+97777bv2Hf/iH3/mHf/iH377vvvtu5X+xa6655sGv/dqv/V7v9E7v9NkA9913362/9Vu/9d0/+qM/+jn8B7jmmmse/Dmf8zm/dc011zwY4Ed+5Ec++0d/9Ec/B+DMmTMP+oiP+IjvPnPmzIPPnj1762d+5me+Di/ET/zETxjg7d7u7cRVV1111VVX/d+GHvSgB3HVVVddddVV/1987ud+7m+92Iu92GsDfOZnfubr/MM//MNv82/wuZ/7ub/1Yi/2Yq9933333fr1X//17/MP//APv80Lcc011zz4tV/7td/rdV7ndd77mmuueTDAfffdd+tv/dZvffdv//Zvf8999913K/8Kr/M6r/Pe7/iO7/hZ11xzzYMB7rvvvlt/67d+67t/9Ed/9HP4P+Kaa6558Iu92Iu99pkzZx704i/+4q/9Yi/2Yq/Nc7nvvvtu/Yd/+Iffvu+++279h3/4h9/5h3/4h9/mqqv+h7nmmmsefObMmQdfc801D36xF3ux17rmmmse/GIv9mKvzfNx33333foP//APv/0P//APv/Nbv/Vb383/Utdcc82DP/zDP/y7XuzFXuy1Ac6ePfuMz/zMz3zt++6771b+jd7xHd/xs97pnd7pswHuu+++W7/+67/+ff7hH/7ht3mAa6655sGf8zmf81vXXHPNg7/+67/+fX7rt37ru3kBvumbvunp11xzzYM/5EM+5CH33XffrVx11VVXXXXV/13oQQ96EFddddVVV131/8Xnfu7n/taLvdiLvTbAP/zDP/z2Z37mZ74O/0qf+7mf+1sv9mIv9tr33XffrV//9V//Pv/wD//w27yIrrnmmge/2Iu92Gu/zuu8znu92Iu92GsD3Hfffbf+wz/8w2//1m/91vf8wz/8w2/zQrzjO77jZ73O67zOe19zzTUPBrjvvvtu/a3f+q3v/tEf/dHP4X+5a6655sGv/dqv/V4A7/RO7/TZPB/33Xffrb/1W7/13WfPnn3Gb/3Wb303V131v9g111zz4Bd7sRd77TNnzjzommuuefCLvdiLvfY111zzYJ7pvvvuu/Xs2bO3/v3f//1v/8M//MPv/MM//MNv87/MO77jO37W67zO67z3Nddc8+D77rvv1t/6rd/67h/90R/9HF5E11xzzYNf+7Vf+71e53Ve572vueaaBwP81m/91nd//dd//fvwArzO67zOe3/4h3/4d9133323fsiHfMhDeAG+6Zu+6enXXHPNgz/kQz7kIffdd9+tXHXVVVddddX/XehBD3oQV1111VVXXfX/wTXXXPPgb/qmb3o6wH333XfrNddc8+DP/MzPfJ1/+Id/+G1eRJ/7uZ/7Wy/2Yi/22vfdd9+tX//1X/8+//AP//Db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/MO/68Ve7MVeG+BHfuRHPvtHf/RHP4d/o2uuuebBL/ZiL/baL/ZiL/Zar/M6r/PePMB9991369mzZ2/9+7//+9/+h3/4h9/5h3/4h9/mRfRiL/Zir/1iL/Zir/VO7/ROn80D3Hfffbf+1m/91nf/6I/+6Odw1X+5a6655sE805kzZx4McM011zz4zJkzD+KZrrnmmgcDXHPNNQ8GOHPmzIMBrrnmmgfzAPfdd9+t/AvOnj17Ky/Efffddyv/gvvuu+9WXoizZ88+g2e67777bj179uyt9913361c9R/qzJkzD3qd13md936nd3qnz+aZzp49+4zf/M3f/K4f/dEf/Rz+na655poHv/Zrv/Z7vdM7vdNn8wC/9Vu/9d3/8A//8Du/9Vu/9d38C6655poHf87nfM5vXXPNNQ++7777bv2sz/qs17nvvvtu5d/hcz/3c3/rxV7sxV4b4Ou//uvf57d+67e+m6uuuuqqq676/wM96EEP4qqrrrrqqqv+P/jwD//w73qd13md9/6RH/mRz/7RH/3Rz+H5eJ3XeZ33/vAP//DvArjvvvtu/azP+qzXue+++27lP9A7vuM7ftY7vdM7fTbAfffdd+vXf/3Xv88//MM//Db/Qa655poHnzlz5sEv9mIv9lov/uIv/tov9mIv9to8wH333XfrP/zDP/z2P/zDP/zOfffdd+s//MM//DYPcM011zz4tV/7td/rnd7pnT6bB7jvvvtu/a3f+q3v/tEf/dHP4ap/s2uuuebBPNOZM2ceDHDNNdc8+MyZMw/ima655poHA1xzzTUPBjhz5syDAa655poH83/Yfffdd+s111zzYB7gvvvuuxXg7Nmzt9533323AvzDP/zD7wDcd999t549e/bW++6771au+le55pprHvxiL/Zir/06r/M67/ViL/Zirw1w33333foP//APv/1bv/Vb3/MP//APv82/wjXXXPPgd3zHd/ys13md13lvnum+++679bd+67e++0d/9Ec/h3+la6655sGf8zmf81vXXHPNg8+ePfuMz/zMz3zt++6771b+jV7ndV7nvT/8wz/8uwA+67M+63X+/u///re56qqrrrrqqv8/0IMe9CCuuuqqq6666v+DD//wD/+u13md13nvr//6r3+f3/qt3/puno8P//AP/67XeZ3XeW+e6b777rv1sz7rs17nvvvuu5V/p2uuuebBH/7hH/5dL/ZiL/baAL/1W7/13V//9V//Pvwnu+aaax78Yi/2Yq/9Yi/2Yq91zTXXPPjFXuzFXpsHuO+++279h3/4h9++7777bn2nd3qnz+YB7rvvvlt/67d+67t/+7d/+3vuu+++W7nqBbrmmmsefObMmQe/2Iu92GsBvPiLv/hrA5w5c+bBANdcc82D+Q9y33333coznT179laA++6779b77rvvVp7p7NmzzwC47777bgU4e/bsrQD33XffrTzANddc82D+BWfOnHkwL8Q111zzYP4FZ86ceRAvxDXXXPNggGuuuebBAGfOnHnwNddc82BeRPfdd9+tAGfPnr31vvvuuxXgvvvuu/Xs2bPPuO+++24FOHv27K333XffrVz1HM6cOfOgd3qnd/rs13md13lvnuns2bPP+JEf+ZHP/q3f+q3v5vm45pprHnzmzJkHv9iLvdhrvdM7vdNn8wA/8iM/8tn/8A//8Dv/8A//8Nv8O1xzzTUP/pzP+Zzfuuaaax5833333fpZn/VZr3Pffffdyr/BT/zET5hn+od/+Iff+czP/MzX5qqrrrrqqqv+/0APetCDuOqqq6666qr/Dz78wz/8u17ndV7nvb/+67/+fX7rt37ru3ku11xzzYO/6Zu+6ekAn/mZn/k6H/7hH/5d11xzzYPvu+++W3/0R3/0c37rt37ru/k3esd3fMfPeqd3eqfPBrjvvvtu/fqv//r3+Yd/+Iff5r/BNddc8+AXe7EXe+3XeZ3Xea8Xe7EXe21egK//+q9/n9/6rd/6bq56lmuuuebBZ86cefCLvdiLvRbAi7/4i7/2mTNnHnzNNdc8mBfRfffddyvPdPbs2VsB7rvvvlvvu+++W3mms2fPPgPgvvvuuxXg7NmztwLcd999t/L/zDXXXPNggDNnzjz4mmuueTDAi73Yi70WwDXXXPPgM2fOPPiaa655MP8K9913360AZ8+evfW+++679b777rv17NmzzwC47777bv2Hf/iH3+b/oWuuuebBr/3ar/1e7/RO7/TZPNN9991362/91m9992//9m9/z2u/9mu/F8CLv/iLv/aLvdiLvTYPcN999936W7/1W9/9oz/6o5/Df6BrrrnmwZ/zOZ/zW9dcc82D77vvvls/67M+63Xuu+++W/lXeMd3fMfPeqd3eqfP/od/+IfffrEXe7HXPnv27DM++IM/+MFcddVVV1111f8f6EEPehBXXXXVVVdd9f/B537u5/7Wi73Yi732Z37mZ77OP/zDP/w2z+XDP/zDv+t1Xud13vu3fuu3vvvrv/7r3+eaa6558Gu/9mu/1zu90zt99n333Xfrb/3Wb333j/7oj34O/wrXXHPNgz/8wz/8u17sxV7stQH+4R/+4bc/8zM/83X4b3LNNdc8+LVf+7Xf63Ve53Xe+5prrnkwz3Tffffdevbs2Vtf7MVe7LV5gPvuu+/Ws2fP3vr3f//3v/0P//APv/MP//APv83/cddcc82Dz5w58+AXe7EXey2AF3/xF3/tM2fOPPiaa655MC/Efffdd+vZs2dv/fu///vfBviHf/iH3wE4e/bsrQD33XffrVz1n+aaa655MMCZM2cefM011zwY4MyZMw+65pprHnzNNdc8GODMmTMPvuaaax7Mi+C+++679ezZs7fed999t/7DP/zD79x33323/sM//MNv8//Ai73Yi732O77jO37Wi7/4i782L8R9991362/91m999z/8wz/8zj/8wz/8Nv9Jzpw586CP+IiP+O4Xe7EXe+377rvv1s/6rM96nfvuu+9WXkQ/8RM/YYDP/MzPfJ0P//AP/65rrrnmwR/yIR/ykPvuu+9Wrrrqqquuuur/BypXXXXVVVdddRXXXHPNg1/ndV7nvQF+9Ed/9HMA7rvvvlt/9Ed/9HMA3umd3umz3+md3umzAX70R3/0c3gRvNiLvdhrf+7nfu5vAdx33323fv3Xf/37/MM//MNv89/gmmuuefBrv/Zrv9c7vdM7fTbPdN999936W7/1W9/9D//wD7/zD//wD78NcM011zz4zJkzD36xF3ux13rxF3/x136xF3ux177mmmse/GIv9mKvDXDffffd+g//8A+//Q//8A+/81u/9Vvfzf9S11xzzYPPnDnz4Bd7sRd7LYAXf/EXf+0Xe7EXe23+Bffdd9+tZ8+evfXv//7vfxvgH/7hH37n7Nmzt9533323ctV/q/vuu+9WgPvuu+/Wf/iHf+CFueaaax585syZBwNcc801Dz5z5syDrrnmmgcDXHPNNQ9+sRd7sde+5pprHnzNNdc8+MVe7MV4ndd5nfcGuO+++249e/bsrffdd9+t//AP//A79913363/8A//8Nv8L3fNNdc8+LVf+7XfC+DFX/zFX/vFXuzFXpsX4r777rv167/+69/nH/7hH36b/wJnz559xtd//de/zzu+4zt+1uu8zuu89+d8zuf81jd8wze8z9///d//Nv+Cz/3cz/0tgN/6rd/67n/4h3/4ba666qqrrrrq/yf0oAc9iKuuuuqqq676/+DDP/zDv+t1Xud13vszP/MzX+cf/uEffpsH+NzP/dzferEXe7HX/q3f+q3v/vqv//r34bm84zu+42e90zu902cD/MM//MNvf+Znfubr8AJcc801D/7wD//w73qxF3ux1wb4h3/4h9/+zM/8zNfhv8E111zz4Nd+7dd+r3d6p3f6bJ7pvvvuu/VHf/RHP+e3fuu3vpt/wTXXXPPgF3uxF3vtF3uxF3utF3uxF3vta6655sE8wH333Xfr2bNnb73vvvtu/Yd/+Iffue+++249e/bsrffdd9+t/De65pprHgzwYi/2Yq995syZBwG8+Iu/+Gu/2Iu92GvzL7jvvvtuPXv27K1///d//9sA//AP//A7Z8+evfW+++67lav+37jmmmse/GIv9mKv/WIv9mKvdc011zz4xV7sxV6b5+O+++67FeAf/uEffvsf/uEffue+++679R/+4R9+m/+hrrnmmgefOXPmwS/2Yi/2Wi/+4i/+2i/2Yi/22jwf9913362/9Vu/9d0AP/qjP/o511xzzYNf+7Vf+73e6Z3e6bN5pvvuu+/W3/7t3/6eH/mRH/ls/gtcc801D37t137t93qnd3qnzz579uwzvu7rvu69/+Ef/uG3eT6uueaaB3/4h3/4d73Yi73Ya//Wb/3Wd//oj/7o59x33323fu7nfu5vvdiLvdhrf+Znfubr/MM//MNvc9VVV1111VX/P6AHPehBXHXVVVddddX/Bx/+4R/+Xa/zOq/z3r/1W7/13V//9V//PjzTi73Yi732537u5/4WwId8yIc85L777ruV5+Oaa6558Od8zuf81jXXXPPg++6779bP+qzPep377rvvVh7gmmuuefA3fdM3PZ1n+pEf+ZHP/tEf/dHP4b/YNddc8+DXfu3Xfq93eqd3+mye6b777rv167/+69/nH/7hH36bf6NrrrnmwS/2Yi/22i/2Yi/2Wq/zOq/z3rwA9913360A//AP//DbAP/wD//wO/fdd9+t//AP//Db/Ce45pprHvzar/3a7wXw4i/+4q995syZB19zzTUP5gW47777bj179uytf//3f//bAP/wD//wO2fPnr31vvvuu5WrrnoBrrnmmgefOXPmwddcc82DX+zFXuy1rrnmmge/2Iu92GvzXO67775bAf7hH/7ht//hH/7hd+67775b/+Ef/uG3+W9wzTXXPPi1X/u13wvgxV/8xV/7xV7sxV6b53Lffffdevbs2Vv//u///rf/4R/+4Xf+4R/+4bd5Aa655poHv/Zrv/Z7vc7rvM57X3PNNQ8GuO+++279rd/6re/+7d/+7e+57777buU/0TXXXPPg137t136vd3qnd/rs++6779bf+q3f+u4f/dEf/Rwe4MVe7MVe+3M/93N/C+C+++679eu//uvf5x/+4R9+G+BzP/dzf+vFXuzFXvszP/MzX+cf/uEffpurrrrqqquu+v8BPehBD+Kqq6666qqr/j+45pprHvxN3/RNT7/vvvtu/fqv//r3+Yd/+IffBvjcz/3c33qxF3ux1/6t3/qt7/76r//69+GFuOaaax78OZ/zOb91zTXXPPi+++679bM+67Ne57777rsV4MVe7MVe+8M//MO/65prrnnwP/zDP/z213/917/Pfffddyv/ha655poHv/Zrv/Z7vdM7vdNn80z33XffrV//9V//Pv/wD//w2/wHu+aaax78Yi/2Yq8N8GIv9mKvdc011zz4xV7sxV6bF+K+++679ezZs7fed999t/7DP/zD79x33323AvzDP/zDb/Miuuaaax782q/92u8F8E7v9E6fzfNx33333Xr27Nlb//7v//63Af7hH/7hd86ePXvrfffddytXXfUf5JprrnnwmTNnHnzNNdc8+MVe7MVe65prrnnwi73Yi702z8d999136z/8wz/89j/8wz/8zn333XfrP/zDP/w2/4GuueaaB585c+bBL/ZiL/ZaL/7iL/7aL/ZiL/baPB/33Xffrb/1W7/13QA/+qM/+jn8G1xzzTUPfrEXe7HXfp3XeZ33erEXe7HXBviHf/iH3/77v//73/7RH/3Rz+E/0TXXXPPg137t136vd3qnd/rs++6779bf+q3f+u4f/dEf/RyAd3zHd/ysd3qnd/psgH/4h3/47c/8zM98HR7gwz/8w7/rdV7ndd7767/+69/nt37rt76bq6666qqrrvr/AT3oQQ/iqquuuuqqq/6/+PAP//Dvep3XeZ33/q3f+q3v/vqv//r3ebEXe7HX/tzP/dzfAviQD/mQh9x333238i+45pprHvyO7/iOn/U6r/M6733ffffd+lu/9Vvf/Q//8A+/87mf+7m/BfBbv/Vb3/31X//178N/oWuuuebBr/3ar/1e7/RO7/TZPNN9991369d//de/zz/8wz/8Nv/FrrnmmgefOXPmwddcc82DX+zFXuy1AK655poHv9iLvdhr8wLcd999twKcPXv21vvuu+/Wf/iHf/id++6779azZ8/eCvDar/3a7/XiL/7ir/1iL/Zir81zue+++249e/bsrX//93//2//wD//wO//wD//w21x11X+Ta6655sEAL/ZiL/baL/ZiL/Za11xzzYNf7MVe7LV5Pu67775bz549e+t9991362/91m99zz/8wz/8Ni+ia6655sGv/dqv/V4AL/7iL/46L/ZiL/ZaPJf77rvv1rNnz97693//97/9D//wD7/zD//wD7/Nf7Brrrnmwe/4ju/4Wa/zOq/z3gBnz559xtd93de99z/8wz/8Nv+J3vEd3/Gz3umd3umz77vvvlt/67d+67tf/MVf/LVf7MVe7LUBfuRHfuSzf/RHf/RzeC4f/uEf/l2v8zqv895f//Vf/z6/9Vu/9d1cddVVV1111f8P6EEPehBXXXXVVVdd9f/FNddc8+Bv+qZvevp9991362d91me9zod/+Id/14u92Iu99o/8yI989o/+6I9+Di+ia6655sGv/dqv/V7v9E7v9Nk8wD/8wz/89md+5me+Dv9Frrnmmge/9mu/9nu90zu902fzTPfdd9+tX//1X/8+//AP//Db/A90zTXXPPjMmTMPvuaaax78Yi/2Yq91zTXXPPjMmTMPvuaaax7Mv8J9991362/91m9992//9m9/z3333XcrV131P9g111zzYIAXe7EXe+0Xe7EXe61rrrnmwS/2Yi/22jyX++6779Z/+Id/+O1/+Id/+J3f+q3f+m6e6ZprrnnwmTNnHvxiL/Zir/XiL/7ir/NiL/Zir8Xzcd999936W7/1W98N8KM/+qOfw3+ha6655sGf8zmf81vXXHPNg++7775bf+u3fuu7f/RHf/Rz+E/0ju/4jp/1Tu/0Tp/NM9133323fv3Xf/37/MM//MNv83y84zu+42e90zu902f/yI/8yGf/6I/+6Odw1VVXXXXVVf8/oAc96EFcddVVV1111f8nH/7hH/5dr/M6r/Pe//AP//DbL/ZiL/baAG/3dm8n/g3e8R3f8bPe6Z3e6bN5pvvuu+/WH/3RH/2c3/qt3/pu/hNdc801D37t137t93qnd3qnz+aZ/uEf/uG3f+RHfuRz/uEf/uG3+V/kmmuuefCZM2ce/Dqv8zrv9WIv9mKvfc011zyYf4X77rvv1rNnz95633333foP//APv3PffffdCvAP//APv81VV/0Pd8011zz4tV/7td/rmmuuefDrvM7rvDcPcN9999169uzZZ7zYi73Ya/F83HfffbeePXv21r//+7//7X/4h3/47X/4h3/4Hf6bXXPNNQ9+7dd+7fd6p3d6p88GuO+++279+q//+vf5h3/4h9/mP8GLvdiLvfbnfu7n/hbP9PVf//Xv81u/9VvfzQvwju/4jp/1Tu/0Tp/9Iz/yI5/9oz/6o5/DVVddddVVV/3/gB70oAdx1VVXXXXVVf+fXHPNNQ/+pm/6pqfzTD/yIz/y2T/6oz/6OfwrXXPNNQ/+8A//8O96sRd7sde+7777bgW45pprHgxw33333fqjP/qjn/Nbv/Vb381/oGuuuebBr/3ar/1e7/RO7/TZPNM//MM//PbXf/3Xv8999913K/8LXHPNNQ9+sRd7sdc+c+bMg178xV/8tV/sxV7stXku9913362/9Vu/9d3/8A//8Dv/8A//8NvXXHPNg8+cOfPga6655sEv9mIv9loA11xzzYNf7MVe7LV5Ae67775bAf7hH/7htwH+4R/+4Xfuu+++W8+ePXvrfffddytXXfVf4JprrnnwmTNnHnzNNdc8+MyZMw8CuOaaax58zTXXPOTMmTMPuuaaax7Mv8J9991369mzZ2/9zM/8zNfhf7BrrrnmwZ/zOZ/zW9dcc82DAX70R3/0c37kR37ks/kP9I7v+I6f9U7v9E6fDfAP//APv/1iL/Zir33ffffd+iEf8iEP4QV4x3d8x896p3d6p8/+rd/6re/++q//+vfhqquuuuqqq/5/QA960IO46qqrrrrqqv9vPvdzP/e3XuzFXuy1Ad7u7d5O/Ctdc801D/7wD//w73qxF3ux1/6Hf/iH3/7Mz/zM17nmmmse/Nqv/drv9Tqv8zrvfc011zwY4L777rv1t37rt777R3/0Rz+Hf4drrrnmwa/92q/9Xu/0Tu/02TzTP/zDP/z213/917/Pfffddyv/g11zzTUPfu3Xfu33Anid13md977mmmsezHO57777bv2t3/qt7/6Hf/iH3/mHf/iH3+Zf4ZprrnnwmTNnHnzNNdc8+MVe7MVe65prrnnwmTNnHnzNNdc8mBfgvvvuuxXgH/7hH377vvvuu/Xs2bPPALjvvvtuBTh79uytAPfdd9+tXHXV83HNNdc8GODMmTMPvuaaax585syZBwG8+Iu/+OsAfrEXe7HX5kV033333Qpw9uzZW++7775b77vvvlsB/uEf/uF3rrnmmge9zuu8znu/2Iu92GvzAPfdd9+tv/Vbv/Xd//AP//A7//AP//Db/A90zTXXPPi1X/u13+ud3umdPhvgvvvuu/W3fuu3vvtHf/RHP4d/h2uuuebBH/7hH/5dL/ZiL/baAD/yIz/y2T/6oz/6OZ/zOZ/zWy/+4i/+2j/yIz/y2T/6oz/6OTwfr/M6r/PeH/7hH/5dv/Vbv/XdX//1X/8+XHXVVVddddX/D+hBD3oQV1111VVXXfX/zTu+4zt+1ju90zt99n333Xfrh3zIhzyEf6XP/dzP/a0Xe7EXe+377rvv1g/5kA95CA9wzTXXPPjFXuzFXvsd3/EdP+uaa655MMB9991362/91m9994/+6I9+Dv8K11xzzYNf+7Vf+73e6Z3e6bN5pn/4h3/47a//+q9/n/vuu+9W/oe65pprHvzar/3a7/U6r/M6733NNdc8mAe47777bj179uytf//3f//b//AP//A7//AP//Db/Ce45pprHgzwYi/2Yq8N8GIv9mKvdc011zz4xV7sxV6bf6X77rvvVoCzZ8/eCnDffffdyjPdd999t549e/YZPNN99913K8DZs2dvve+++27lqv91rrnmmgefOXPmwddcc82Dz5w58yCAa6655sHXXHPNg8+cOfPga6655sG8iO67775bz549e+t9991363333XcrwNmzZ59x3333Pf3s2bPPuO+++27lRXDNNdc8+MVe7MVe+8Ve7MVe63Ve53Xemwe47777bv2Hf/iH3/mt3/qt7/6Hf/iH3+Z/mGuuuebBH/7hH/5dL/ZiL/baAP/wD//w21//9V//Pvfdd9+t/Cu92Iu92Gt/7ud+7m8B3Hfffbd+/dd//fv8wz/8w28DvNiLvdhrfe7nfu5v33fffbd+yId8yEN4Pl7sxV7stT/3cz/3t/7hH/7htz/zMz/zdbjqqquuuuqq/x/Qgx70IK666qqrrrrq/5tv+qZvevo111zzYIDf+q3f+u6v//qvfx9eRJ/7uZ/7Wy/2Yi/22vfdd9+tH/IhH/IQXoBrrrnmwS/2Yi/22q/zOq/zXi/2Yi/22gD33Xffrb/1W7/13T/6oz/6OfwL3vEd3/Gz3umd3umzeaZ/+Id/+O2v//qvf5/77rvvVv4Huuaaax782q/92u/1Oq/zOu99zTXXPJhnuu+++249e/bsrX//93//2//wD//wO//wD//w2/w3u+aaax585syZB19zzTUPfrEXe7HX4pmuueaaBwOcOXPmwQDXXHPNg/kPcN99993KM509e/ZWgPvuu+9WgPvuu+9WgLNnzz4D4L777ruVZzp79uyt9913361c9R/immuueTDAmTNnHnzNNdc8+MyZMw8CePEXf/HXBnixF3ux1+ZFdN99990KcPbs2Vvvu+++W++7775bAf7hH/7htwH9wz/8w2/zn+TMmTMPuuaaax7yYi/2Yq/14i/+4q/9Yi/2Yq/NM9133323/sM//MNv/8M//MPv/NZv/dZ38z/IO77jO37WO73TO302wH333Xfrb//2b3/Pj/zIj3w2L6LXeZ3Xee8P//AP/y6Af/iHf/jtz/zMz3wdnsvnfu7n/taLvdiLvfZv/dZvfffXf/3Xvw/P5cVe7MVe+3M/93N/6x/+4R9++zM/8zNfh6uuuuqqq676/wE96EEP4qqrrrrqqqv+v/mmb/qmp19zzTUPBrjvvvtu/ZAP+ZCH8CL43M/93N96sRd7sde+7777bv2sz/qs17nvvvtu5UXwOq/zOu/9Oq/zOu/1Yi/2Yq8NcN999936W7/1W9/9oz/6o5/Dc7nmmmse/OEf/uHf9WIv9mKvDfAP//APv/31X//173Pffffdyv8w11xzzYNf+7Vf+71e/MVf/LVf7MVe7LV5pvvuu+/W3/qt3/ruf/iHf/idf/iHf/ht/pe75pprHgxw5syZBwNcc801D+aZzpw586BrrrnmwTzTNddc82CAM2fOPPiaa655MP9B7rvvvlt5prNnz95633333coz3XfffbeePXv2GTzTfffddyvA2bNnbwW47777buU/yDXXXPNgXogzZ848mBfgmmuueTAvwJkzZx7Ev+Caa655MC/ANddc82BegDNnzjz4mmuueTAvovvuu+9WgH/4h3/47fvuu+9WgLNnzz7jvvvuu/Xs2bO33nfffbfyP8g111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bZ7p7Nmzz7jvvvue/vd///e//Q//8A+/8w//8A+/zX+za6655sGv/dqv/V7v9E7v9NkA9913362f9Vmf9Tr33XffrbwQn/u5n/tbL/ZiL/baAD/yIz/y2T/6oz/6OTwf11xzzYO/6Zu+6en33XffrZ/1WZ/1Ovfdd9+tPMDrvM7rvPeHf/iHf9eP/MiPfPaP/uiPfg5XXXXVVVdd9f8DetCDHsRVV1111VVX/X/zEz/xEwb4h3/4h99+sRd7sdf++q//+vf5rd/6re/mhfjcz/3c33qxF3ux177vvvtu/fqv//r3+Yd/+Iff5l/pdV7ndd77dV7ndd7rxV7sxV4b4L777rv1t37rt777t3/7t7/nvvvuu/XFXuzFXvtzP/dzfwvgvvvuu/Xrv/7r3+cf/uEffpv/Ya655poHv/Zrv/Z7vdM7vdNn8wC/9Vu/9d3/8A//8Du/9Vu/9d1c9SzXXHPNg3mmM2fOPBjgmmuueTDAmTNnHgRwzTXXPBjgmmuueTDAmTNnHgxwzTXXPJj/IPfdd9+t/AuuueaaB/N/zH333XfrNddc8+D77rvvVoCzZ8/eet99991633333QrwD//wD78D8A//8A+/zf9y11xzzYNf7MVe7LVf53Ve571e7MVe7LV5gPvuu+/W3/7t3/6eH/mRH/ls/pu9zuu8znu/4zu+42ddc801D77vvvtu/a3f+q3v/tEf/dHP4blcc801D/7wD//w73qxF3ux1wb4zM/8zNf5h3/4h9/mhfjwD//w73qd13md9/6t3/qt7/76r//69+EBPvdzP/e3XuzFXuy1f+u3fuu7v/7rv/59uOqqq6666qr/H9CDHvQgrrrqqquuuur/m5/4iZ8wwGd+5me+zud+7uf+1n333Xfrh3zIhzyEF+DDP/zDv+t1Xud13hvgMz/zM1/nH/7hH36bf4drrrnmwR/+4R/+XS/2Yi/22gD33Xffrf/wD//w26/zOq/z3gD/8A//8Nuf+Zmf+Tr8D3LNNdc8+LVf+7Xf653e6Z0+mwe47777bv2t3/qt7/7RH/3Rz+Gq/zQv9mIv9toA11xzzYPPnDnzoBd/8Rd/bYAzZ848+Jprrnkw/0fcd999twKcPXv21vvuu+/W++6771ae6ezZs8/gBbjvvvtu5QU4e/bsrffdd9+t/D9z5syZB734i7/467zYi73Ya73O67zOe/NM9913362/9Vu/9d2//du//T333Xffrfw3OXPmzINe53Ve573f6Z3e6bMB7rvvvlu//uu//n3+4R/+4bevueaaB7/jO77jZ73O67zOewPcd999t37913/9+/zDP/zDb/MvuOaaax78Td/0TU8H+KzP+qzX+fu///vfBnixF3ux1/7cz/3c3wL4kA/5kIfcd999t3LVVVddddVV/z+gBz3oQVx11VVXXXXV/zc/8RM/YYC3e7u30+d+7uf+1ou92Iu99td//de/z2/91m99N8/lwz/8w7/rdV7ndd4b4DM/8zNf5x/+4R9+m/8g11xzzYM//MM//Lte7MVe7LV5gA/5kA95yH333Xcr/82uueaaB7/2a7/2e73O67zOe19zzTUP5pnuu+++W3/rt37ru3/7t3/7e+67775bueqFuuaaax7MM505c+bB11xzzYMBzpw58yCe6ZprrnkwwDXXXPNggDNnzjz4mmuueTD/Qe67775beaazZ8/eCnDmzJkH8wJcc801D+Z/iPvuu+9WgLNnz95633333Xrffffdevbs2Wfcd999twKcPXv21vvuu+9WrnqBrrnmmgefOXPmwa/zOq/zXq/zOq/z3gD33Xffrf/wD//w27/1W7/1Pf/wD//w2/w3ueaaax78OZ/zOb91zTXXPPjs2bPPsO1rrrnmwTzT13/917/Pb/3Wb303/wof/uEf/l2v8zqv897/8A//8Duf+Zmf+doAn/u5n/tbL/ZiL/baP/qjP/o5P/IjP/LZXHXVVVddddX/H+hBD3oQV1111VVXXfX/yTXXXPPgb/qmb3o6wNu93dvpxV7sxV77cz/3c3/rvvvuu/VDPuRDHsIDvM7rvM57f/iHf/h3AXzmZ37m6/zDP/zDb/Mf6HVe53Xe+8M//MO/C+C+++679ZprrnkwwH333XfrP/zDP/z2b/3Wb33PP/zDP/w2/4WuueaaB7/2a7/2e734i7/4a7/Yi73Ya/NM9913362/9Vu/9d2//du//T333XffrVz1LNdcc82Dz5w58+AXe7EXey2AF3/xF3/tM2fOPBjgmmuueTD/Ae67775bAc6ePXsrwH333XcrwH333Xcrz3T27Nln3HfffbfyTGfPnr31vvvuu5X/YNdcc82DeSHOnDnzYF6Ia6655sG8AC/2Yi/2WgDXXHPNg8+cOfPga6655sG8iO67775bz549e+t99913K8B9991369mzZ59x33333QrwD//wD7/NVVxzzTUPfu3Xfu33eqd3eqfP5pnuu+++W7/+67/+ff7hH/7ht/kvds011zz4Hd/xHT/rdV7ndd6bB/iRH/mRz/7RH/3Rz+Hf4JprrnnwN33TNz0d4DM/8zNfB+BzP/dzfwvg7d7u7cRVV1111VVX/f+CHvSgB3HVVVddddVV/59cc801D/6mb/qmp9933323fsiHfMhDAD78wz/8u17ndV7nvX/rt37ru7/+67/+fQCuueaaB3/O53zOb11zzTUP/szP/MzX+Yd/+Iff5j/INddc8+AP//AP/64Xe7EXe22A3/qt3/rur//6r3+fa6655sGv/dqv/V7v9E7v9Nk802/91m9992/91m99zz/8wz/8Nv+JXuzFXuy1X+zFXuy13umd3umzeYAf+ZEf+eyzZ88+47d+67e+m//HrrnmmgcDvNiLvdhrnzlz5kHXXHPNg6+55poHv9iLvdhr8y+47777buWZzp49eyvAfffdd+t99913K8909uzZZwDcd999twKcPXv21vvuu+9WruKaa655MMCZM2cefM011zz4zJkzD7rmmmsefM011zwY4MyZMw++5pprHsyL4L777rsV4OzZs7fed999twL8wz/8w+8A3HfffbeePXv21vvuu+9W/h+45pprHvzar/3a7/VO7/ROn80z3Xfffbf+6I/+6Of81m/91nfzn+yaa6558Gu/9mu/1zu90zt9Ns9033333XrNNdc8GOBHfuRHPvtHf/RHP4d/o9d5ndd57w//8A//rvvuu+/Ws2fP3vpiL/Zir/0jP/Ijn/2jP/qjn8NVV1111VVX/f+CHvSgB3HVVVddddVV/59cc801D/6mb/qmp9933323fsiHfMhDAK655poHf87nfM5vXXPNNQ++7777bv2QD/mQh3zTN33T06+55poH/8iP/Mhn/+iP/ujn8B/kxV7sxV77cz/3c38L4L777rv167/+69/nH/7hH36bB7jmmmse/Nqv/drv9U7v9E6fzTP91m/91nf/1m/91vf8wz/8w2/zH+Saa6558Gu/9mu/1zu90zt9Ng9w33333fpbv/Vb3/2jP/qjn8P/I9dcc82DAV7sxV7stc+cOfOga6655sHXXHPNg1/sxV7stXkh7rvvvlvPnj1763333Xfrfffdd+s//MM//A7AP/zDP/w2V/2XuOaaax4McObMmQdfc801DwZ4sRd7sdcCuOaaax4M8GIv9mKvzYvg7Nmzz7jvvvueft999936D//wD7/zD//wD79933333cr/UWfOnHnQ67zO67z367zO67z3Nddc82CAs2fPPuM3f/M3v+tHf/RHP4f/YO/4ju/4Wa/zOq/z3tdcc82DeaYf+ZEf+ezf/u3f/p777rvv1td5ndd57w//8A//LoAf+ZEf+ewf/dEf/Rz+Da655poHf87nfM5vXXPNNQ/mmd7u7d5OXHXVVVddddX/P+hBD3oQV1111VVXXfX/yYu92Iu99ud+7uf+1j/8wz/89md+5me+Ds90zTXXPPhzPudzfuuaa655MM9033333fohH/IhD+E/yDu+4zt+1ju90zt9NsB9991362d91me9zn333XcrL8A111zz4Nd+7dd+r3d6p3f6bJ7pvvvuu/Uf/uEffvsf/uEffue+++679R/+4R9+m3+ld3zHd/ys13md13nva6655sE803333Xfrb/3Wb333j/7oj34O/8ddc801Dz5z5syDX+zFXuy1AF78xV/8tV/sxV7stXkh7rvvvlsB/uEf/uG377vvvlvPnj37jPvuu+/Wf/iHf/htrvpf45prrnkwwJkzZx58zTXXPBjgxV7sxV4L4Jprrnnwi73Yi702z8fZs2efcd999z39vvvuu/Uf/uEffue3fuu3vpv/Y6655poHv9iLvdhrv+M7vuNnXXPNNQ8GuO+++279rd/6re/+0R/90c/h3+Gaa6558Gu/9mu/1zu90zt9Ns9033333fpbv/Vb3/2jP/qjn8NzeZ3XeZ33/vAP//DvAvjRH/3Rz/mRH/mRz+bf4HVe53Xe+8M//MO/C+BHfuRHPvtHf/RHP4errrrqqquu+v8HPehBD+Kqq6666qqr/j95sRd7sdf+3M/93N/6h3/4h9/+zM/8zNfhAa655poHf87nfM5vXXPNNQ8G+Pqv//r3+a3f+q3v5t/pmmuuefCHf/iHf9eLvdiLvTbAj/zIj3z2j/7oj34OL6JrrrnmwS/2Yi/22q/zOq/z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+Iff5r/Bi73Yi732h3/4h3/XNddc8+D77rvv1t/+7d/+nh/5kR/5bP6Vrrnmmgd/+Id/+He92Iu92GsDfP3Xf/37vM7rvM57vdiLvdhrf/3Xf/37/NZv/dZ381w+/MM//Lte53Ve572//uu//n1+67d+67u56qqrrrrqqv9f0IMe9CCuuuqqq6666v+rD//wD/+u13md13nv++6779YP+ZAPeQgvgmuuuebB3/RN3/R0gN/6rd/67q//+q9/H4BrrrnmwR/+4R/+XS/2Yi/22gD33Xffrb/1W7/13T/6oz/6OfwrvM7rvM57f/iHf/h3AfzDP/zDb3/mZ37m6/Df7Jprrnnwa7/2a7/X67zO67z3Nddc82Ce6b777rv1t37rt777R3/0Rz+Hf8E111zzYIAXe7EXe+0Xe7EXey2Aa6655sEv9mIv9tq8APfdd9+tZ8+evfW+++679R/+4R9+57777rv17Nmzt95333238j/YNddc8+AzZ848+MVe7MVei2e65pprHnzNNdc8GODMmTMPBrjmmmsezH+A++6771ae6ezZs7cC3Hfffbfed999t/JMZ8+efQbAfffddyvPxzXXXPNgXoAzZ848iOfjmmuueTAvwDXXXPNgXoAzZ848mOdyzTXXPJgX0X333Xfr2bNnb73vvvtuBfiHf/iH3wG47777bj179uyt99133638H3PNNdc8+LVf+7Xf68Vf/MVf+8Ve7MVem+dy33333Xr27Nlb//7v//63/+Ef/uF3/uEf/uG3z5w586AXf/EXf50Xe7EXe63XeZ3XeW+e6b777rv167/+69/nH/7hH36b/2LXXHPNg1/7tV/7vd7pnd7pswH+4R/+4be//uu//n3uu+++W3kRXHPNNQ/+pm/6pqcD3Hfffbd+/dd//fv8wz/8w2+/zuu8znt/+Id/+Hfdd999t37Ih3zIQ3guH/7hH/5dr/M6r/PeX//1X/8+v/Vbv/XdXHXVVVddddX/L+hBD3oQV1111VVXXfX/1ed+7uf+1ou92Iu9NsBv/dZvfffXf/3Xvw8vxDXXXPPgz/mcz/mta6655sH/8A//8Nuf+Zmf+To8l9d5ndd579d5ndd5rxd7sRd7bYD77rvv1t/6rd/67h/90R/9HP4Fn/u5n/tbL/ZiL/baAD/yIz/y2T/6oz/6Ofw3uuaaax782q/92u/1Tu/0Tp/NM9133323/tZv/dZ3//Zv//b33Hfffbfy73TNNdc8GODFXuzFXhvgxV7sxV7rmmuuefCLvdiLvTYvwH333XcrwD/8wz/89j/8wz/8DsB999136z/8wz/8Nv9FrrnmmgefOXPmwS/2Yi/2WgAv/uIv/tpnzpx58DXXXPNg/pXuu+++W3mms2fP3nrffffdCnDffffdyjOdPXv2Gffdd9+tPNPZs2dvve+++27l/5BrrrnmwQBnzpx58DXXXPNgwC/2Yi/22gDXXHPNg8+cOfPga6655sG8CM6ePfsM2/6Hf/iH3wb4h3/4h98BuO+++249e/bsrffdd9+t/A9yzTXXPBjgzJkzD36xF3ux1wK45pprHnzNNdc85MVe7MVei+dy33333foP//APv33ffffd+g//8A+/8w//8A+/zQtxzTXXPPi1X/u13+ud3umdPptnuu+++279+q//+vf5h3/4h9/mv9jrvM7rvPeHf/iHfxfAfffdd+tv/dZvffeP/uiPfg4vxIu92Iu99ud+7uf+FsA//MM//PZnfuZnvg7PdM011zz4wz7sw77rxV/8xV/767/+69/nt37rt76bB3jHd3zHz3qnd3qnz/6RH/mRz/7RH/3Rz+Gqq6666qqr/n9BD3rQg7jqqquuuuqq/68+93M/97de7MVe7LUB7rvvvls/5EM+5CG8EJ/7uZ/7Wy/2Yi/22v/wD//w25/5mZ/5OrwQr/M6r/Per/M6r/NeL/ZiL/baAPfdd9+tv/Vbv/XdP/qjP/o5PJdrrrnmwZ/zOZ/zW9dcc82DAT7zMz/zdf7hH/7ht/lvcM011zz4tV/7td/rdV7ndd77mmuueTDPdN999936W7/1W9/9oz/6o5/Df5FrrrnmwWfOnHnwNddc8+AXe7EXe61rrrnmwS/2Yi/22rwA9913360A//AP//DbAP/wD//wO/fdd9+t//AP//Db/Btdc801D36xF3ux1z5z5syDAF78xV/8tV/sxV7stXkh7rvvvlvPnj1769///d//Ns909uzZZ9x333238kxnz5699b777ruVq/5Vzpw58yBJOnPmzIOvueaaBwO82Iu92GsBXHPNNQ8+c+bMg6+55poH8yK47777bpWk++677+n33Xffrf/wD//wOwC/9Vu/9d38B7vmmmsefObMmQdfc801Dz5z5syDAF78xV/8tc+cOfPga6655sG8EPfdd9+tAL/1W7/13QA/+qM/+jn8G505c+ZBr/M6r/Pe7/RO7/TZPNPZs2ef8SM/8iOf/Vu/9VvfzX+hM2fOPOh1Xud13vud3umdPhvg67/+69/nt37rt76b5+Md3/EdP+ud3umdPhvgt37rt77767/+69+H5/I6r/M67/3hH/7h33Xffffd+iEf8iEP4QE+/MM//Lte53Ve572//uu//n1+67d+67u56qqrrrrqqv9f0IMe9CCuuuqqq6666v+rz/3cz/2tF3uxF3ttnunrv/7r3+e3fuu3vpvn43M/93N/68Ve7MVe+7777rv1Qz7kQx7Ci+h1Xud13vsd3/EdP+uaa655MMB9991362/91m9994/+6I9+DsDrvM7rvPeHf/iHfxfAfffdd+tnfdZnvc599913K//F3vEd3/GzXvzFX/y1X+zFXuy1eab77rvv1t/6rd/67t/+7d/+nvvuu+9W/oe45pprHnzmzJkHX3PNNQ9+sRd7sde65pprHnzmzJkHX3PNNQ/mBbjvvvtuPXv27K333Xffrf/wD//wO/fdd9+t//AP//DbANdcc82Dz5w58+AXe7EXey2AF3/xF3/tM2fOPPiaa655MC/AfffddyvAP/zDP/z2fffdd+s//MM//A7AP/zDP/w2V/23O3PmzIOuueaah1xzzTUPBnixF3ux1wK45pprHnzmzJkHX3PNNQ/mhbjvvvtu/Yd/+Iff/od/+Iffue+++279h3/4h9/mBbjmmmseDPBiL/Zir33mzJkHAVxzzTUPvuaaax78Yi/2Yq/Ni+C+++67FeDs2bO3/v3f//1vA5w9e/YZ991339P/4R/+4Xf4D3bNNdc8+LVf+7Xf63Ve53Xe+5prrnkwwH333Xfrj/7oj37Ob/3Wb303/4Xe8R3f8bPe6Z3e6bMBfuu3fuu7v/7rv/59eIAP//AP/67XeZ3XeW+AH/mRH/nsH/3RH/0cno8zZ8486CM+4iO++8Ve7MVe++u//uvf57d+67e+m2f6pm/6pqdfc801D/7Mz/zM1/mHf/iH3+aqq6666qqr/n9BD3rQg7jqqquuuuqq/6++6Zu+6enXXHPNg7/+67/+fT78wz/8u+67775bP+RDPuQhPJfP/dzP/a0Xe7EXe+377rvv1s/6rM96nfvuu+9W/hWuueaaB7/Yi73Ya7/jO77jZ11zzTUPBrjvvvtu/Yd/+Ifffp3XeZ33Bvit3/qt7/76r//69+G/0DXXXPPg137t136vd3qnd/psHuBHfuRHPvsf/uEffucf/uEffpv/Ra655poHA7zYi73Ya585c+ZB11xzzYOvueaaB7/Yi73Ya/Pv9Fu/9VvfDfBbv/Vb3/MP//APv81V/+tdc801D7bta6655iHXXHPNg1/sxV7sta655poHv9iLvdhr81zOnj37DNv+h3/4h98GuOaaax58zTXXPOTMmTMP4kVw33333Xr27Nlb77vvvlvvu+++WwH+4R/+4XcA/uEf/uG3+W9yzTXXPPi1X/u13+t1Xud13vuaa655MMB9991362//9m9/z4/8yI98Nv9Frrnmmgd/0zd909MBfuRHfuSzf/RHf/Rzrrnmmgd/+Id/+He92Iu92GsDfOZnfubr/MM//MNv80K8zuu8znt/+Id/+Hfdd999t37Ih3zIQwBe53Ve570//MM//Lv+4R/+4bc/8zM/83W46qqrrrrqqv9/0IMe9CCuuuqqq6666v+rb/qmb3r6Nddc8+DP/MzPfJ13eqd3+qwXe7EXe+3P/MzPfJ1/+Id/+G2e6cVe7MVe+3M/93N/C+AzP/MzX+cf/uEffpt/o2uuuebBL/ZiL/ba7/iO7/hZ11xzzYN5pn/4h3/47c/8zM98Hf6LXHPNNQ/+8A//8O96sRd7sdfmme67775bf+u3fuu7f/RHf/Rz+F/ummuuefBrv/ZrvxfAi7/4i7/2mTNnHnzNNdc8mP9A9913360AZ8+evRXgvvvuu5Vnuu+++249e/bsMwDuu+++WwHOnj17K8B99913K1f9j3HNNdc8+MyZMw++5pprHnzmzJkHAbz4i7/465w5c+ZB11xzzYP5V/iHf/iH3/77v//73wY4e/bsM+67775b/+Ef/uG3+V/gmmuuefBrv/Zrv9frvM7rvPc111zzYID77rvv1t/6rd/67h/90R/9HP4LXHPNNQ/+pm/6pqcD/MiP/Mhnv87rvM57X3PNNQ++7777bv36r//69/mHf/iH3+ZfcM011zz4wz/8w7/rxV7sxV7767/+69/nt37rt777m77pm55+zTXXPPgzP/MzX+cf/uEffpurrrrqqquu+v8HPehBD+Kqq6666qqr/r/6pm/6pqdfc801D/6QD/mQh7zYi73Ya3/4h3/4d9133323fsiHfMhDeKZv+qZvevo111zz4M/8zM98nX/4h3/4bf6dXuzFXuy1P/dzP/e3eC733XffrT/6oz/6Ob/1W7/13fwnueaaax782q/92u/1Tu/0Tp8NcN999936W7/1W9/927/9299z33333cr/Utdcc82DX/u1X/u9AN7pnd7ps3kB7rvvvlvPnj1769///d//NsA//MM//M7Zs2dvPXPmzIOvueaaB/NMZ86cedA111zzYIBrrrnmwQBnzpx5MMA111zzYP4D3HfffbcCnD179laA++6771aA++6771aAs2fPPgPgvvvuuxXg7NmztwLcd999t3LV83XNNdc8mOfjzJkzD36xF3ux1wK45pprHnzNNdc8+MVe7MVemxfRfffdd+vZs2dvve+++2697777br3mmmse/GIv9mKvfc011zyY53L27Nln/P3f//1v/cM//MPv3Hfffbf+wz/8w2/zv8g111zz4Bd7sRd77Xd8x3f8rGuuuebBAPfdd9+tv/Vbv/XdP/qjP/o5/Cd7x3d8x896p3d6p8/mmf7hH/7htz/zMz/zdfhXeJ3XeZ33/vAP//Dvuu+++2790R/90c/+8A//8O/+h3/4h9/+zM/8zNfhqquuuuqqq/5/Qg960IO46qqrrrrqqv+vvumbvunp11xzzYM/5EM+5CEA3/RN3/R0gM/8zM98nX/4h3/47dd5ndd57w//8A//rn/4h3/47c/8zM98Hf6d3vEd3/Gz3umd3umzAf7hH/7ht7/+67/+fV77tV/7vV7ndV7nva+55poHA9x33323fv3Xf/37/MM//MNv8x/kmmuuefBrv/Zrv9c7vdM7fTbP9CM/8iOf/aM/+qOfw/9C11xzzYNf7MVe7LXPnDnzoNd5ndd572uuuebBPMB999136z/8wz/89n333XfrP/zDP/zO2bNnb73vvvtu5T/QNddc82CAM2fOPBjgmmuueTDAmTNnHgRwzTXXPBjgmmuueTDAmTNnHgxwzTXXPJh/p/vuu+9Wnuns2bO3Atx33323Atx33323Apw9e/YZAPfdd9+tAGfPnr0V4L777ruV53LNNdc8mOfjzJkzD+b5uOaaax7M83HmzJkH8QJcc801D+bZBBjgmmuueTBXCDAPcM011zzEtnmAa6655sH8B7rvvvtuPXv27K333Xffrffdd9+tAP/wD//w24D+4R/+4bd5Ic6cOfOgF3/xF3+dF3uxF3uta6655sEv9mIv9to8l/vuu+9WSfr7v//73/qHf/iH37nvvvtu/Yd/+Iff5n+4M2fOPOjFX/zFX+cd3/EdP+uaa655MMDZs2ef8Zu/+Zvf9aM/+qOfw3+wa6655sGv/dqv/V7v9E7v9Nk8wI/8yI989o/+6I9+Dv8K11xzzYM//MM//Lte7MVe7LV5ps/8zM98nX/4h3/4ba666qqrrrrq/yf0oAc9iKuuuuqqq676/+onfuInDPB2b/d2Anid13md936d13md9zpz5syDP+uzPut1PvzDP/y7XuzFXuy1v/7rv/59fuu3fuu7+Te65pprHvzhH/7h3/ViL/Zirw3wIz/yI5/9oz/6o5/DM11zzTUPfu3Xfu33ep3XeZ33vuaaax4McN9999369V//9e/zD//wD7/Nv8M7vuM7ftY7vdM7fTbP9CM/8iOf/du//dvfc999993K/xLXXHPNg8+cOfPgF3uxF3utF3/xF3/tF3uxF3ttHuC+++679ezZs7f+/d///W//9m//9vfcd999t/I/3DXXXPNggDNnzjwY4JprrnkwwJkzZx4EcM011zwY4JprrnkwwJkzZx4McM011zyYq56v++6771aej7Nnz97693//978NcPbs2Wfcd999t549e/bW++6771b+g505c+ZBL/7iL/46L/ZiL/Za11xzzYNf7MVe7LV5Lvfdd9+tZ8+efcbf//3f/9Y//MM//M4//MM//Db/Q11zzTUPfrEXe7HXfp3XeZ33erEXe7HXBrjvvvtu/a3f+q3v/tEf/dHP4d/pmmuuefA7vuM7ftbrvM7rvDfP9CM/8iOfDfBO7/ROn33ffffd+qM/+qOf81u/9Vvfzb/C67zO67z3h3/4h38XwH333Xfrh3zIhzyEq6666qqrrvr/Cz3oQQ/iqquuuuqqq/6/+omf+AkDvN3bvZ14ps/93M/9rRd7sRd77fvuu+/Wa6655sEAb/d2byf+jV7sxV7stT/3cz/3twDuu+++W7/+67/+ff7hH/7ht3k+rrnmmge/9mu/9nu90zu902fzTPfdd9+tX//1X/8+//AP//Db/Cu82Iu92Gt/+Id/+Hddc801Dwa47777bv2sz/qs17nvvvtu5X+Ba6655sGv/dqv/V4v/uIv/tov9mIv9to8l/vuu+/W3/qt3/ruf/iHf/idf/iHf/ht/h+55pprHswznTlz5sEA11xzzYMBzpw58yCAa6655sEA11xzzYMBzpw582CAa6655sE8l/vuu+9Wno+zZ8/eyvNx33333crzcd99993KC3D27Nln8GwGBHDffffdyhUGxAPcd999T5ckHuC+++67lf9FrrnmmgefOXPmQddcc81DXuzFXuy1Xud1Xue9eS733Xffrf/wD//w2//wD//wO7/1W7/13fwP9Tqv8zrv9Tqv8zrv/WIv9mKvDXDffffd+tu//dvf8yM/8iOfzb/SO77jO37W677u677PmTNnHgRw33333fpbv/Vb3/2jP/qjn8MzveM7vuNnvdM7vdNnnz179hlf93Vf997/8A//8Nu8iK655poHf87nfM5vXXPNNQ/+kR/5kc/+0R/90c/hqquuuuqqq/7/Qg960IO46qqrrrrqqv+vfuInfsIAb/d2byee6Zprrnnwh3/4h3/Xi73Yi702wI/8yI989o/+6I9+Dv8G7/iO7/hZ7/RO7/TZAP/wD//w25/5mZ/5OrwIrrnmmge/9mu/9nu90zu902fzTL/1W7/13b/1W7/1Pf/wD//w27wQ11xzzYM//MM//Lte7MVe7LUB7rvvvlu//uu//n3+4R/+4bf5H+yaa6558Gu/9mu/14u/+Iu/9ou92Iu9Ns/lvvvuu/W3fuu3vvsf/uEffucf/uEffpurrvpf6pprrnnwi73Yi73Wi73Yi732Nddc8+AXe7EXe22e6b777rv1H/7hH377t37rt77nH/7hH36b/4Fe53Ve571f53Ve571e7MVe7LUB7rvvvls/67M+63Xuu+++W/kXvOM7vuNnvc7rvM57X3PNNQ8GuO+++279rd/6re/+0R/90c/h+XjHd3zHz3qnd3qnz77vvvtu/fqv//r3+Yd/+Iff5kXwOq/zOu/94R/+4d8F8Fu/9Vvf/fVf//Xvw1VXXXXVVVf9/4Ue9KAHcdVVV1111VX/X/3ET/yEAd7u7d5OPMCLvdiLvfbnfu7n/hbAfffdd+vXf/3Xv88//MM//Db/Cu/4ju/4Wa/zOq/z3tdcc82Df+RHfuSzf/RHf/Rz+Fe65pprHvzar/3a7/VO7/ROn80z/dZv/dZ3/9Zv/db3/MM//MNv8wDXXHPNg9/xHd/xs17ndV7nvQHuu+++W3/rt37ru3/0R3/0c/gf6Jprrnnwa7/2a78XwDu90zt9Ns/lvvvuu/W3fuu3vvsf/uEffucf/uEffpurrvo/6pprrnnwa7/2a7/Xi7/4i7/2i73Yi702z3Tffffd+g//8A+/81u/9Vvf/Q//8A+/zf8w11xzzYM/53M+57euueaaB9933323/tZv/dZ3/+iP/ujn8FyuueaaB7/2a7/2e73TO73TZ/NM9913362/9Vu/9d0/+qM/+jm8ENdcc82DX/u1X/u93umd3umz77vvvls/67M+63Xuu+++W/kXfO7nfu5vvdiLvdhrA/zDP/zDb3/mZ37m63DVVVddddVV/3+hBz3oQVx11VVXXXXV/0fXXHPNg7/pm77p6ffdd9+tH/IhH/IQHuDDP/zDv+t1Xud13vu+++679Zprrnnwfffdd+vXf/3Xv88//MM//DYvghd7sRd77c/93M/9LYDP/MzPfJ1/+Id/+G3+Ha655poHv/Zrv/Z7vdM7vdNn80z33Xffrf/wD//w2//wD//wO2fOnHnQO73TO302wH333Xfrb/3Wb333j/7oj34O/4Ncc801D37t137t9wJ4p3d6p8/mudx33323/tZv/dZ3A/zoj/7o53DVVf8PXXPNNQ9+7dd+7fd68Rd/8dd+sRd7sdfmme67775bf+u3fuu7/+Ef/uF3/uEf/uG3+R/izJkzD3qd13md936nd3qnzwb4kR/5kc/+0R/90c8BuOaaax782q/92u/1Tu/0Tp/NM9133323/uiP/ujn/NZv/dZ38yI6c+bMg97pnd7ps1/ndV7nve+7775bP+uzPut17rvvvlt5AV7ndV7nvT/8wz/8u3imf/iHf/jtz/zMz3wdrrrqqquuuur/L/SgBz2Iq6666qqrrvr/6JprrnnwN33TNz39vvvuu/VDPuRDHsID/MRP/IQBPvMzP/N1XuzFXuy13umd3umz77vvvlt/67d+67t/9Ed/9HN4IV7sxV7stT/3cz/3twC+/uu//n1+67d+67v5D3LNNdc8+MVe7MVe+3Ve53Xe68Ve7MVem+dy33333fohH/IhD+F/iGuuuebBr/3ar/1er/M6r/Pe11xzzYN5gPvuu+/Wf/iHf/jt++6779Yf/dEf/Ryuuuqq53DNNdc8+LVf+7Xf63Ve53Xe+5prrnkwz3T27Nln/OZv/uZ3/cM//MPv/MM//MNv8z/AO77jO37WO73TO302wNmzZ5/xm7/5m9/1Tu/0Tp/NM/3DP/zDb//Ij/zI5/zDP/zDb/NvcM011zz4wz/8w7/rxV7sxV77vvvuu/WzPuuzXue+++67lefjcz/3c3/rxV7sxV77t37rt777dV7ndd77H/7hH377Mz/zM1+Hq6666qqrrvr/i8pVV1111VVXXfUc3vEd3/GzAH7rt37ru//hH/7ht//hH/7htwHe6Z3e6bNf53Ve570BfvRHf/RzeD6uueaaB3/u537ubwH8wz/8w2//1m/91nfzH+i+++679b777vvuM2fOPOjFXuzFXpvncs011zz4J37iJ3zffffd+lu/9Vvf/Q//8A+/8w//8A+/zX+xa6655sHv+I7v+Fmv8zqv894803333Xfr2bNnb/37v//73/6Hf/iH3/mHf/iH3+aqq656ge67775bf/RHf/RzfvRHf/Rzrrnmmge/9mu/9nu9zuu8zntfc801D36nd3qnzwa47777bv2t3/qt7/6Hf/iH3/mHf/iH3+a/yY/+6I9+zj/8wz/8zud+7uf+1pkzZx70Tu/0Tp8N8CM/8iOf/du//dvfc999993Kv8N9991369d//de/z4d/+Id/14u92Iu99ud+7uf+9gd/8Ac/mOfyYi/2Yq/9Yi/2Yq8N8Fu/9Vvf8zqv8zrvzVVXXXXVVVddReWqq6666qqr/p86c+bMg++7775bz549eysP8Dqv8zrvDfBbv/Vb38Mz/eiP/ujnALzTO73TZ7/O67zOewP86I/+6OfwXD78wz/8uwD+4R/+4bc/8zM/83X4D/ZiL/Zir/3hH/7h33XNNdc8GOC+++679eu//uvf5+zZs7e+2Iu92Gu/zuu8znu92Iu92Gtfc801D36nd3qnzwa47777bv2Hf/iH3/6t3/qt7/mHf/iH3+Y/yTXXXPPg137t136v13md13nva6655sE803333Xfrj/7oj37Ob/3Wb303V/2nu+aaax4McObMmQcDXHPNNQ8+c+bMg3ima6655sE8H/fdd9+tPJezZ88+g+fjvvvuu5UX4OzZs7fyXO67775buerf5b777rv1R3/0Rz/nt3/7t7/nzJkzD3qd13md936d13md977mmmse/E7v9E6fDXDffffd+lu/9Vvf/du//dvfc999993Kf5F3fMd3/KzXeZ3Xee9rrrnmwQD33Xffrddcc82DAV7ndV7nvX/7t3/7e/gPcN9999369V//9e/zOZ/zOb91zTXXPPibvumbnv4hH/IhD+EB3umd3umzAH7kR37ks8+ePXsrwJkzZx7MVVddddVVV/3/hh70oAdx1VVXXXXVVf9f/cRP/IQBPvMzP/N1/uEf/uG3X+d1Xue9P/zDP/y7/uEf/uG3P/MzP/N1eC7v+I7v+Fnv9E7v9NkAP/IjP/LZP/qjP/o5PNPnfu7n/taLvdiLvfZ9991364d8yIc8hP9A11xzzYM//MM//Lte7MVe7LUB7rvvvlt/9Ed/9HN+67d+67t5Ltdcc82DX+zFXuy1X+zFXuy1Xud1Xue9eYD77rvv1n/4h3/47X/4h3/4nd/6rd/6bv4DXHPNNQ9+x3d8x896ndd5nffmme67775bf+u3fuu7f/RHf/RzuOpf5ZprrnkwwJkzZx4McM011zwY4MyZMw8CuOaaax4McM011zwY4MyZMw++5pprHsz/Qvfdd9+tPNPZs2efAfi+++679b777rv17Nmzz7jvvvtuBfiHf/iH3+aq53HNNdc8+MVe7MVe+8Ve7MVe63Ve53Xemwe47777bv3RH/3Rz/mt3/qt7+Y/yTu+4zt+1uu+7uu+z5kzZx4EcN999936W7/1W9/9oz/6o5/zYi/2Yq/94R/+4d91zTXXPPi+++679bd/+7e/50d+5Ec+m/8A11xzzYM/53M+57cAfvRHf/Rzfuu3fuu7AV7sxV7stT/3cz/3twDe7u3eTtdcc82Dv+mbvunp9913360f8iEf8hCuuuqqq6666v8v9KAHPYirrrrqqquu+v/qHd/xHT/rnd7pnT77H/7hH377Mz/zM1/nm77pm55+zTXXPPjrv/7r3+e3fuu3vpvn4x3f8R0/653e6Z0+G+BHfuRHPvtHf/RHP+cd3/EdP+ud3umdPhvgMz/zM1/nH/7hH36b/yAv9mIv9tqf+7mf+1sA9913362/9Vu/9d0/+qM/+jm8CK655poHA7z2a7/2e734i7/4a7/Yi73Ya/NM9913361nz5699bd+67e+5x/+4R9++7777ruVF9E111zz4Nd+7dd+r3d6p3f6bB7gt37rt777H/7hH37nt37rt76b/+euueaaBwO82Iu92GsDnDlz5kE80zXXXPPga6655sEAZ86ceTDANddc82D+A9x33323Apw9e/ZWgPvuu+/W++6771ae6ezZs8/g+Thz5syDeC7XXHPNg3k+rrnmmgfzApw5c+bBPJdrrrnmwfw73XfffbcCnD179hn33Xff0//hH/7hdwDuu+++W8+ePXvrfffddyv/j505c+ZBL/7iL/46L/ZiL/Zar/M6r/PePNN9991369mzZ2/9rd/6re/5rd/6re/m3+maa6558Gu/9mu/1zu90zt9Ns9033333fpbv/Vb3/2jP/qjn8MDXHPNNQ9+7dd+7fd6p3d6p88G+JEf+ZHP/tEf/dHP4T/AmTNnHvTN3/zNt9533323fsiHfMhDXuzFXuy1P/dzP/e37rvvvlt/67d+67t/9Ed/9HOuueaaB3/TN33T0++7775bP+RDPuQhXHXVVVddddX/X+hBD3oQV1111VVXXfX/1TXXXPPgb/qmb3r6fffdd+s//MM//PbrvM7rvDfA273d24kX4h3f8R0/653e6Z0+G+C3fuu3vvt1Xud13hvgMz/zM1/nH/7hH36b/yDv+I7v+Fnv9E7v9NkAv/Vbv/XdX//1X/8+/Dtcc801D36xF3ux136d13md93qxF3ux1+YB7rvvvlt/67d+67v/4R/+4Xf+4R/+4bd5Pq655poHv+M7vuNnvc7rvM5780z33Xffrb/1W7/13T/6oz/6Ofw/dM011zz4zJkzD36xF3ux1wJ48Rd/8dd+sRd7sdfm3+i+++67FeDs2bO3Atx33323Atx33323Apw9e/YZAPfdd9+tAGfPnr31vvvuu5X/ha655poH80y2fc011zzkmmuuefCZM2cedM011zz4mmuuefCZM2cefM011zyYF8F9991369mzZ2+97777bgX0D//wD78NcN9999169uzZW++7775b+X/gmmuuefCLvdiLvfaLvdiLvdbrvM7rvDfPdN9999369V//9e/zD//wD7/Nv8I111zz4Nd+7dd+rxd/8Rd/nRd7sRd7LZ7pvvvuu/VHf/RHP/u3fuu3vocX4h3f8R0/653e6Z0+G+C+++679bM+67Ne57777ruVf6fP/dzP/a0Xe7EXe+1/+Id/+O0Xe7EXe22Af/iHf/jtz/zMz3wdnuknfuInDPB2b/d24qqrrrrqqqv+/0IPetCDuOqqq6666qr/zz73cz/3t17sxV7stXmmr//6r3+f3/qt3/pu/gWv8zqv894f/uEf/l0809d//de/z2/91m99N/8Brrnmmgd/+Id/+He92Iu92GsD/MiP/Mhn/+iP/ujn8B/ommuuefCLvdiLvfaLvdiLvdbrvM7rvDcPcN999936D//wD7/9W7/1W99z9uzZW1/7tV/7vd7pnd7ps3mAH/mRH/nsf/iHf/idf/iHf/ht/h+45pprHvxiL/Zir33mzJkHXXPNNQ++5pprHvxiL/Zir80LcN99990K8A//8A+/DXDffffdyjOdPXv2Gffdd9+tAGfPnr0V4L777ruVq16ga6655sEAL/ZiL/ZagF7sxV7stQCuueaaB585c+bB11xzzYP5F5w9e/YZtn327Nlb77vvvlsB/uEf/uF37rvvvlsB/uEf/uG3+T/mmmuuefBrv/Zrv9frvM7rvPc111zzYID77rvv1q//+q9/n3/4h3/4bZ6Pa6655sGv/dqv/V4v/uIv/tov9mIv9to8wH333Xfr2bNnb/2RH/mRz/mHf/iH3+ZFdObMmQd97ud+7m9fc801D77vvvtu/a3f+q3v/tEf/dHP4d/hxV7sxV77cz/3c3+LZ/qt3/qt7/76r//69+EBfuInfsIAb/d2byeuuuqqq6666v8v9KAHPYirrrrqqquu+v/sxV7sxV77cz/3c3+LZ3q7t3s78SK45pprHvxN3/RNT+eZfuRHfuSzf/RHf/Rz+He65pprHvw5n/M5v3XNNdc8+L777rv167/+69/nH/7hH36b/0TXXHPNg1/sxV7stV/sxV7stV7sxV7sta+55poH83zcd999t/7Wb/3Wd//oj/7o5/B/0DXXXPNggBd7sRd77TNnzjzoxV/8xV/7zJkzD77mmmsezAtw33333Xr27Nlb//7v//63Af7hH/7hd/7hH/7ht7nqv9w111zz4DNnzjz4mmuueTDgF3uxF3ttgGuuuebBL/ZiL/ba/Av+4R/+4bfPnDnz4H/4h3/4nX/4h3/47X/4h3/47fvuu+9W/g+45pprHvzar/3a7/VO7/ROn80z3Xfffbd+/dd//fucPXv21td+7dd+L4B3eqd3+myey3333Xfrb/3Wb333P/zDP/z2P/zDP/wO/0bXXHPNg1/7tV/7vd7pnd7pswH+4R/+4bc/8zM/83X4N/rwD//w73qd13md9wb4rd/6re/++q//+vfhufzET/yEAd7u7d5OXHXVVVddddX/X+hBD3oQV1111VVXXfX/3ed+7uf+1ou92Iu99m/91m9999d//de/Dy+Cz/3cz/2tF3uxF3vtf/iHf/jtF3uxF3ttgN/6rd/67q//+q9/H/6NXuzFXuy1P/dzP/e3AO67775bP+uzPut17rvvvlv5L3LNNdc8+LVf+7Xf653e6Z0+m+fjvvvuu/Xs2bO3/v3f//1v/8M//MPv/MM//MNv87/QNddc8+AzZ848+MVe7MVeC+DFX/zFX/vFXuzFXpsX4r777rv17Nmzt/793//9b589e/YZ9913363/8A//8Ntc9b/GmTNnHiRJZ86cefA111zz4DNnzjzommuuefA111zzYIAXe7EXe22ey3333XfrP/zDP/z2P/zDP/zOfffdd+s//MM//Db/i505c+ZB7/RO7/TZr/M6r/PevAD33Xffrb/1W7/13QA/+qM/+jn8B3vHd3zHz3qnd3qnzwa47777bv36r//69/mHf/iH3+Zf4XM/93N/68Ve7MVem2e67777bv2QD/mQh/Bcvumbvunp11xzzYM/5EM+5CH33XffrVx11VVXXXXV/0/oQQ96EFddddVVV131/907vuM7ftY7vdM7ffZ9991364d8yIc8hH/B537u5/7Wi73Yi732fffdd+uHfMiHPOSaa6558Dd90zc9HeC3fuu3vvvrv/7r34d/pXd8x3f8rHd6p3f6bIB/+Id/+O3P/MzPfB3+i7zjO77jZ734i7/4a7/Yi73Ya/NM9913362/9Vu/9d2//du//T0v9mIv9tqv8zqv814v9mIv9to8wH333Xfrb/3Wb333P/zDP/zOP/zDP/w2/8Ncc801Dz5z5syDX+zFXuy1rrnmmgdfc801D36xF3ux1+YFuO+++24F+Id/+Iffvu+++249e/bsM+67775b/+Ef/uG3uer/vGuuuebBZ86cefA111zzoNd5ndd57xd7sRd7bZ7Lfffdd+vZs2dvve+++279h3/4h9/5rd/6re/mf7hrrrnmwWfOnHnwi73Yi73W677u677PmTNnHsQL8Jmf+Zmv8w//8A+/zX+ya6655sEf/uEf/l0v9mIv9tr/8A//8Nt///d//9s/+qM/+jm8CD73cz/3t17sxV7stQE+8zM/83Xe6Z3e6bNe7MVe7LW//uu//n1+67d+67t5gG/6pm96+jXXXPPgD/mQD3nIfffddytXXXXVVVdd9f8TetCDHsRVV1111VVX/X/34R/+4d/1Oq/zOu8N8Jmf+Zmv8w//8A+/zQvwju/4jp/1Tu/0Tp8N8Jmf+Zmv8w//8A+/DXDNNdc8+HM+53N+65prrnnwfffdd+uP/uiPfs5v/dZvfTcvgs/93M/9rRd7sRd7bYAf+ZEf+ewf/dEf/Rz+C7zjO77jZ734i7/4a7/Yi73Ya/NMP/IjP/LZv/3bv/0999133608l2uuuebBL/ZiL/baL/ZiL/Zar/M6r/PePMB9991369mzZ2+97777bv2Hf/iH37nvvvtu/Yd/+Iff5r/QNddc8+DXfu3Xfq9rrrnmwS/2Yi/22tdcc82DeT7uu+++W8+ePXvr3//93/82wD/8wz/8zj/8wz/8Nldd9VyuueaaB7/Yi73Ya7/Yi73Ya11zzTUPfrEXe7HX5rncd999t/7DP/zDb//DP/zD79x33323/sM//MNv89/ommuuefCZM2ce/GIv9mKv9eIv/uKv/WIv9mKvzQPcd999t549e/bWv//7v//tf/iHf/idF3uxF3utd3qnd/psgPvuu+/Wf/iHf/jtH/3RH/2c++6771b+E505c+ZBr/M6r/Pe7/RO7/TZ9913361f//Vf/z7/8A//8Nu8ANdcc82DP/zDP/y7XuzFXuy177vvvlu//uu//n3+4R/+4bdf53Ve570//MM//LvOnj37jA/+4A9+MA/wTd/0TU+/5pprHvyZn/mZr/MP//APv81VV1111VVX/f+EHvSgB3HVVVddddVV/999+Id/+He9zuu8znsD/MM//MNvf+Znfubr8Hy82Iu92Gt/7ud+7m8BfOZnfubr/MM//MNv8wDXXHPNgz/ncz7nt6655poHA9x33323fv3Xf/37/MM//MNv83xcc801D/7wD//w73qxF3ux177vvvtu/fqv//r3+Yd/+Iff5j/Zi73Yi732h3/4h3/XNddc82CA++6779bf+q3f+u4f/dEf/RxeRNdcc82Dz5w58+DXeZ3Xea9rrrnmwWfOnHnwNddc82Cey3333Xfr2bNnb73vvvtu/Yd/+Iffue+++279h3/4h9/mP8A111zz4DNnzjz4xV7sxV7rdV7ndd77mmuueTAPcN9999169uzZW//+7//+twH+4R/+4Xf+4R/+4be56qp/o2uuuebBL/ZiL/baZ86cedCLv/iLv/aLvdiLvTbP5b777rv17Nmzt/793//9b//DP/zD7/zDP/zDb/Of7Jprrnnwa7/2a7/Xi7/4i7/2i73Yi702z+W+++679bd+67e++x/+4R9++x/+4R9+h+dyzTXXPPi1X/u13+ud3umdPhvg7Nmzz/j7v//73/rRH/3Rz7nvvvtu5T/RO77jO37WO73TO332fffdd+tnfdZnvc599913K8/lmmuuefA3fdM3PR3gvvvuu/VDPuRDHsIzXXPNNQ/+8A//8O96sRd7sdf+zM/8zNf5h3/4h9/mmT7ncz7nt178xV/8tT/zMz/zdf7hH/7ht7nqqquuuuqq/5/Qgx70IK666qqrrrrq/7sP//AP/67XeZ3XeW+e6TM/8zNf5x/+4R9+mwe45pprHvxN3/RNTwf4zM/8zNf5h3/4h9/m+bjmmmse/Nqv/drv9Tqv8zrvfc011zwY4Ld+67e++0d/9Ec/57777ruVZ3qxF3ux1/7cz/3c3wK47777bv2sz/qs17nvvvtu5T/RNddc8+B3fMd3/KzXeZ3XeW+A++6779Yf/dEf/Zzf+q3f+m7+na655poHnzlz5sHXXHPNg1/sxV7sta655poHv9iLvdhr8wLcd999t549e/bW++6779Z/+Id/+J377rvv1n/4h3/4bf4F11xzzYNf+7Vf+71e/MVf/LVf7MVe7LV5gPvuu+/Wf/iHf/jt++6779Yf/dEf/Ryuuuo/2TXXXPNggBd7sRd77Rd7sRd7rWuuuebBL/ZiL/baPJf77rvv1n/4h3/47X/4h3/4nfvuu+/Wf/iHf/ht/h2uueaaB7/2a7/2e734i7/4a7/Yi73Ya/Nc7rvvvlt/67d+67v/4R/+4Xf+4R/+4bd5EV1zzTUPfu3Xfu33eqd3eqfPBrjvvvtu/a3f+q3v/u3f/u3vue+++27lP8E111zz4Hd8x3f8rNd5ndd577Nnzz7jMz/zM1/7vvvuu5VnerEXe7HX/tzP/dzfAviHf/iH3/7Mz/zM1+G5vM7rvM57f/iHf/h33Xfffbd+yId8yEN4pp/4iZ/wfffdd+uHfMiHPISrrrrqqquu+v8LPehBD+Kqq6666qqr/r/78A//8O96ndd5nfe+7777br3mmmse/Fu/9Vvf/fVf//XvwwN8+Id/+He9zuu8znv/yI/8yGf/6I/+6OfwL7jmmmse/Nqv/drv9U7v9E6fDXDffffd+lu/9Vvf/du//dvf89qv/drv9U7v9E6fDfAP//APv/2Zn/mZr8N/omuuuebBr/3ar/1e7/RO7/TZPNOP/MiPfPaP/uiPfg7/ya655poHnzlz5sHXXHPNg1/sxV7sta655poHv9iLvdhr8wLcd999t549e/bW++6779Z/+Id/+J377rvv1hd7sRd7rWuuuebBr/M6r/PePJf77rvv1t/6rd/67n/4h3/4nX/4h3/4ba666r/ZNddc8+AXe7EXe+0Xe7EXe61rrrnmwS/2Yi/22jyXs2fPPuPv//7vf+sf/uEffue3fuu3vpt/wTXXXPPg137t136vF3/xF3/tF3uxF3ttnst9991362/91m999z/8wz/8zj/8wz/8Nv9OZ86cedDrvM7rvPc7vdM7fTbAfffdd+tv//Zvf89v/dZvffd99913K//Brrnmmgd/+Id/+He92Iu92Gvfd999t37Ih3zIQwBe7MVe7LU/93M/97cA/uEf/uG3P/MzP/N1eD6uueaaB3/O53zOb11zzTUP/szP/MzX+Yd/+Ifffp3XeZ33/vAP//Dv+od/+Iff/szP/MzX4aqrrrrqqqv+/0IPetCDuOqqq6666qr/7z78wz/8u17ndV7nvX/kR37ks9/pnd7ps++7775bP+RDPuQhPNOLvdiLvfbnfu7n/hbA273d24l/hWuuuebBr/3ar/1e7/RO7/TZPJcf+ZEf+ewf/dEf/Rz+E73jO77jZ73TO73TZ/NMP/IjP/LZP/qjP/o5/De75pprHvxiL/Zirw3wYi/2Yq91zTXXPPjFXuzFXpsXwX333Xfrb/3Wb333j/7oj34OV131P9yZM2cedM011zzkmmuuefCLvdiLvdbrvM7rvDcPcN999936D//wD7/9D//wD7/zW7/1W999zTXXPPjMmTMPfrEXe7HXAnind3qnz+a53Hfffbf+1m/91ncD/OiP/ujn8J/kmmuuefBrv/Zrv9c7vdM7fTbAfffdd+tv/dZvffeP/uiPfg7/wa655poHf87nfM5vXXPNNQ/+rd/6re/+h3/4h9/58A//8O8C+K3f+q3v/vqv//r34YV4ndd5nff+8A//8O/6h3/4h9/+zM/8zNf5pm/6pqdfc801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3XffrV//9V//Pi/2Yi/2Wu/0Tu/02WfPnn3G133d1733P/zDP/w2L4Jv+qZvevo111zz4N/6rd/67q//+q9/H6666qqrrrrqKvSgBz2Iq6666qqrrvr/7pu+6Zuefs011zz4Qz7kQx5y33333XrNNdc8+B3f8R0/63Ve53Xem2d6u7d7O/GvcM011zz4m77pm54O8CM/8iOf/aM/+qOfwwtwzTXXPPi1X/u13+ud3umdPptn+q3f+q3v/tEf/dHPue+++27lBbjmmmse/OEf/uHf9WIv9mKvDXDffffd+vVf//Xv8w//8A+/zX+ja6655sHv+I7v+Fmv8zqv894803333Xfrb/3Wb333P/zDP/zOP/zDP/w2/w2uueaaBwO82Iu92Gu/2Iu92Gtdc801Dz5z5syDr7nmmgffd999t15zzTUP5l/hvvvuu5VnOnv27K333XffrTzTfffdd+vZs2efAXDffffdCnD27NlbAe67775b+Q90zTXXPBjgzJkzDwa45pprHgxw5syZBwFcc801DwZ0zTXXPAjgzJkzDz579uytgADzTPfdd9+tgADzAPfdd9+tPJezZ88+g+fjvvvuu5Xn4+zZs7fyXO67775b+W9wzTXXPBjgxV7sxV77zJkzDwJ48Rd/8dcGeLEXe7HX5l9w33333QrwD//wD79933333QrwD//wD78D8A//8A+/zX+wa6655sEv9mIv9tqv8zqv814v9mIv9to803333XfrP/zDP/z2b/3Wb33PP/zDP/w2/w3OnDnzoNd5ndd573d6p3f6bIAf+ZEf+ewf/dEf/RxeBNdcc82DX/u1X/u93umd3umzeaav//qvf5/f+q3f+m6e6R3f8R0/653e6Z0++7777rv1sz7rs17nvvvuu5UX4sVe7MVe+3M/93N/C+BHfuRHPvtHf/RHP4errrrqqquuugo96EEP4qqrrrrqqqv+v/umb/qmp19zzTUP/pAP+ZCH3HfffbcCXHPNNQ/+pm/6pqcD3Hfffbd+yId8yEP4V/jcz/3c33qxF3ux1/6Hf/iH3/7Mz/zM1+FFcM011zz4tV/7td/rnd7pnT4b4L777rv1t37rt777R3/0Rz+HB7jmmmse/Nqv/drv9U7v9E6fDXDffffd+lu/9Vvf/aM/+qOfw3+Ta6655sGv/dqv/V6v8zqv897XXHPNg3mmH/mRH/ns3/7t3/6e++6771b+h7rmmmsefObMmQcDXHPNNQ8GOHPmzIMArrnmmgcDXHPNNQ8GOHPmzIOvueaaB/PvdN99993KM509e/ZWgPvuu+9WgPvuu+/Ws2fPPuPMmTMP4pmuueaaB19zzTUP5pnOnDnz4GuuuebB/B9w33333SpJtv0P//APvw3wD//wD78DcN999936D//wD7/NA1xzzTUP5vk4c+bMg3mAa6655sFnzpx5EMCLv/iLvzagF3uxF3st/gX33XffrQD/8A//8Nv33XffrQD/8A//8NuA/uEf/uG3+W90zTXXPPi1X/u13+vFX/zFX/vFXuzFXptnOnv27DN+8zd/87v+4R/+4Xf+4R/+4bf5L/aO7/iOn/VO7/ROnw1w9uzZZ3zmZ37ma99333238nxcc801D37t137t93qnd3qnz+aZfuRHfuSzf/u3f/t77rvvvlt5gGuuuebB7/iO7/hZr/M6r/Pe9913362f9Vmf9Tr33XffrbwAH/7hH/5dr/M6r/PeAL/1W7/13V//9V//Plx11VVXXXXVVehBD3oQV1111VVXXfX/3Td90zc9/Zprrnnwh3zIhzzkvvvuuxXgmmuuefA3fdM3PZ1nuu+++279kA/5kIfwIvjcz/3c33qxF3ux177vvvtu/ZAP+ZCH8K90zTXXPPi1X/u13+ud3umdPhvgvvvuu/W3fuu3vvtHf/RHP+cd3/EdP+ud3umdPptn+pEf+ZHP/tEf/dHP4b/JNddc8+DXfu3Xfq93eqd3+mye6b777rv1t37rt777R3/0Rz+H/8OuueaaB/NMZ86cefA111zzYJ7pxV7sxV7rdV7ndd6b/0b33XffrWfPnr31vvvuu/W+++679R/+4R9+B+Ds2bO3njlz5sGAAV1zzTUPBjhz5syDeIBrrrnmwQDXXHPNg3mmM2fOPBjgmmuueTD/S9133323Apw9e/bWv//7v/9tgH/4h3/4HYB/+Id/+G3+l7jmmmse/Nqv/drv9Tqv8zrvfc011zyYZ7rvvvtu/a3f+q3v/tEf/dHP4b/QNddc8+DP+ZzP+a1rrrnmwffdd9+tv/Vbv/XdP/qjP/o5PNM111zz4Hd8x3f8rNd5ndd5b57pR37kRz77t3/7t7/nvvvuu5UX4MyZMw/6iI/4iO9+sRd7sde+7777bv2QD/mQh/AC/MRP/IR5pt/6rd/67q//+q9/H6666qqrrrrqKvSgBz2Iq6666qqrrvr/7pu+6Zuefs011zz4Qz7kQx5y33333Qrw4R/+4d/1Oq/zOu/9D//wD7995syZB19zzTUPvu+++279kA/5kIfwQrzYi73Ya3/u537ubwF85md+5uv8wz/8w2/zb3TNNdc8+B3f8R0/63Ve53Xem+fyD//wD7/99V//9e9z33333cp/g3d8x3f8rNd5ndd572uuuebBPNN9991364/+6I9+zm/91m99N/9PXHPNNQ9+sRd7sdc+c+bMg178xV/8tQFe7MVe7LX5V7rvvvtuBTh79uytAPfdd9+tANdcc82DAc6cOfNggGuuuebBXPUi+4d/+Iffvu+++279rd/6re8B/A//8A+/w/9BL/ZiL/Zar/M6r/Per/M6r/PePNPZs2ef8Zu/+Zvf9Q//8A+/8w//8A+/zX+Ba6655sGv/dqv/V7v9E7v9NkAP/IjP/LZv/3bv/097/iO7/jZr/M6r/NePNOP/MiPfPaP/uiPfg4vomuuuebBn/M5n/Nb11xzzYN/67d+67u//uu//n14Lh/+4R/+Xa/zOq/z3jzTb/3Wb33313/9178PV1111VVXXXUVetCDHsRVV1111VVX/X/3Td/0TU+/5pprHvwhH/IhD7nvvvtuBfiJn/gJA3zmZ37m65w9e/bWz/mcz/mta6655sH33XffrR/yIR/yEJ6PF3uxF3vtz/3cz/0tgM/8zM98nX/4h3/4bf4DvM7rvM57f/iHf/h38Uz33XffrT/6oz/6Ob/1W7/13fwXuuaaax782q/92u/1Tu/0Tp/NM9133323/tZv/dZ3//Zv//b33Hfffbfyf9Q111zz4Bd7sRd77TNnzjzoxV/8xV/7zJkzD77mmmsezAtw33333Xr27Nlb//7v//63eaazZ88+47777rsV4OzZs7cC3Hfffbfyb3DNNdc8GODMmTMPAnTNNdc8GODMmTMPuuaaax7MM11zzTUPBjhz5syDr7nmmgfzfNx333238nycPXv2Vp7LfffddyvPx3333Xcrz8fZs2dvBcQD3HfffU8HxAPcd999T5ckHuC+++67lWe65pprHgxw5syZB11zzTUPebEXe7HXArjmmmsefObMmQdfc801D+ZfcPbs2Wfcd999T7/vvvtuBfiHf/iH37nvvvtuBfiHf/iH3+b/gGuuuebBL/ZiL/baL/ZiL/Zar/M6r/PePNNv/dZvffeP/uiPfs599913K/8F3vEd3/Gz3umd3umzeS4/8iM/8tk/+qM/+jn8G1xzzTUP/pzP+Zzfuuaaax78W7/1W9/99V//9e/DA/zET/yEAX7kR37ks9/pnd7ps//hH/7htz/zMz/zdbjqqquuuuqqq9CDHvQgrrrqqquuuur/u5/4iZ8wwNu93dsJ4HVe53Xe+8M//MO/6x/+4R9++zM/8zNfB+Caa6558Od8zuf81jXXXPPg++6779YP+ZAPeQgPcM011zz4cz7nc37rmmuuefCP/MiPfPaP/uiPfg7/Ad7xHd/xs97pnd7pswF+67d+67tf7MVe7LWvueaaBwPcd999t/7Wb/3Wd//DP/zD7/zDP/zDb/Of5HVe53Xe+8Ve7MVe63Ve53Xem2e67777bv2t3/qt7/7RH/3Rz+H/iGuuuebBAC/2Yi/22mfOnHnQi7/4i7/2mTNnHnzNNdc8mBfgvvvuu/Xs2bO3/v3f//1vnz179hn33Xffrf/wD//w21z1X+qaa655MMCZM2cefM011zz4zJkzD7rmmmsefM011zz4zJkzD77mmmsezL/gvvvuu/Uf/uEffvsf/uEffue3fuu3vpv/5c6cOfOg13md13nvd3qnd/psgPvuu+/W3/7t3/6e3/qt3/ru++6771b+k1xzzTUP/vAP//DverEXe7HX5gF+5Ed+5LN/9Ed/9HP4d3ixF3ux1/7cz/3c3zp79uwzPviDP/jBPNPrvM7rvPeHf/iHf9dv/dZvffdv/dZvfc/nfu7n/tY//MM//PZnfuZnvg5XXXXVVVdddRV60IMexFVXXXXVVVf9f/fhH/7h3/U6r/M67/2Zn/mZr/MP//APv/1N3/RNT7/mmmse/PVf//Xv81u/9VvfzTNdc801D/6cz/mc37rmmmsefN999936IR/yIQ/hmT73cz/3t17sxV7stf/hH/7htz/zMz/zdfgP8OEf/uHf9Tqv8zrvDfAjP/Ijn/2jP/qjn3PNNdc8+LVf+7Xf63Ve53Xe+5prrnkwz3Tffffd+g//8A+//Vu/9Vvf8w//8A+/zb/TNddc8+DXfu3Xfq93eqd3+mye6b777rv1t37rt777t3/7t7/nvvvuu5X/pa655poHA7zYi73Ya585c+ZBL/7iL/7aL/ZiL/bavBD33Xffrf/wD//w2/fdd9+tZ8+efcZ999136z/8wz/8Nlf9r3HmzJkHXXPNNQ+55pprHgzwYi/2Yq91zTXXPBjgxV7sxV6b53Lffffd+g//8A+//Q//8A+/c9999936D//wD7/N/0LXXHPNg1/7tV/7vd7pnd7pswHuu+++W3/rt37ru3/0R3/0c/gPdM011zz4wz/8w7/rxV7sxV4b4L777rv1t37rt74b4J3e6Z0+G+BHfuRHPvtHf/RHP4d/h8/93M/9rRd7sRd77a//+q9/n9/6rd/6boBv+qZvevo111zz4M/8zM98HYDP/dzP/a1/+Id/+O3P/MzPfB2uuuqqq6666ir0oAc9iKuuuuqqq676/+51Xud13vvDP/zDv+sf/uEffvtHfuRHPudzP/dzfwvg7d7u7cRzueaaax78OZ/zOb91zTXXPPi+++679UM+5EMe8o7v+I6f9U7v9E6ffd999936IR/yIQ/h3+maa6558Id/+Id/14u92Iu9NsBnfuZnvs4//MM//DYPcM011zz4zJkzD36d13md93qd13md9+YB7rvvvlv/4R/+4bd/67d+63v+4R/+4bf5V7jmmmse/I7v+I6f9Tqv8zrvzTPdd999t/7Wb/3Wd//oj/7o5/C/yDXXXPNggNd+7dd+L4AXf/EXf+0Xe7EXe21eiPvuu+/Wf/iHf/jt++6779azZ88+47777rv1H/7hH36bq/5Pu+aaax585syZB19zzTUPfp3XeZ33erEXe7HX5rncd999t/7DP/zDb//DP/zD79x33323/sM//MNv87/INddc8+DXfu3Xfq93eqd3+myA++6779bf+q3f+u4f/dEf/Rz+Ha655poHf/iHf/h3vdiLvdhrA9x33323/tZv/dZ3/+iP/ujn8Ezv+I7v+Fnv9E7v9NkA9913362f9Vmf9Tr33XffrfwbvNiLvdhrf+7nfu5v3Xfffbd+yId8yENe53Ve570//MM//Lv+4R/+4bc/8zM/83Ve7MVe7LU/93M/97f+4R/+4bc/8zM/83W46qqrrrrqqqvQgx70IK666qqrrrrq/7trrrnmwd/0Td/0dID77rvv1muuuebBP/IjP/LZP/qjP/o5PB/XXHPNgz/ncz7nt6655poH33fffbdec801Dwb4zM/8zNf5h3/4h9/m3+Gaa6558Od8zuf81jXXXPPg++6779av//qvf59/+Id/+G3+Bddcc82DX/u1X/u9Xud1Xue9r7nmmgfzTPfdd9+t//AP//Dbv/Vbv/U9//AP//DbPB/XXHPNg1/7tV/7vV7ndV7nva+55poH80y/9Vu/9d2/9Vu/9T3/8A//8Nv8L3HNNdc8+LVf+7Xf68Vf/MVf+8Ve7MVemxfgvvvuu/Uf/uEffvu+++679R/+4R9+5+zZs7fed999t3LVVc90zTXXPPjFXuzFXvvFXuzFXut1Xud13pvncvbs2Wfcd999T//7v//73/6Hf/iH3/mHf/iH3+Z/gWuuuebBH/7hH/5dL/ZiL/baAGfPnn3Gb/7mb37Xj/7oj34O/wov9mIv9trv9E7v9Fkv9mIv9toA9913362/9Vu/9d0/+qM/+jk8H9dcc82DP+dzPue3rrnmmgffd999t/7oj/7o5/zWb/3Wd/OvdM011zz4wz7sw77rxV/8xV/7R37kRz77nd7pnT77H/7hH377t37rt77nt37rt777mmuuefA3fdM3Pf2+++679UM+5EMewlVXXXXVVVddhR70oAdx1VVXXXXVVVfBh3/4h3/X67zO67w3z/QhH/IhD7nvvvtu5QW45pprHvw5n/M5v3XNNdc8GOAzP/MzX+cf/uEffpt/hxd7sRd77c/93M/9LYD77rvv1g/5kA95CP8G11xzzYNf+7Vf+71e/MVf/LVf7MVe7LV5pvvuu+/Wf/iHf/jtf/iHf/id3/qt3/pugHd8x3f8rHd6p3f6bJ7pvvvuu/W3fuu3vvtHf/RHP4f/Ba655poHv/Zrv/Z7AbzTO73TZ/Nc7rvvvlv/4R/+4bfvu+++W//hH/7hd86ePXvrfffddytXXfWvdM011zz4xV7sxV77xV7sxV7rmmuuefCLvdiLvTYPcN99990qSX//93//W//wD//wO7/1W7/13fwP9mIv9mKv/U7v9E6f9WIv9mKvDXDffffd+qM/+qOf81u/9VvfzQvxYi/2Yq/94R/+4d91zTXXPBjgvvvuu/W3fuu3vvtHf/RHP4d/wTXXXPPg137t136vd3qnd/rss2fPPuM3f/M3v+tHf/RHP4d/pdd5ndd57w//8A//Lp7pt37rt77767/+698H4JprrnnwN33TNz39vvvuu/VDPuRDHsJVV1111VVXXYUe9KAHcdVVV1111VVXwTXXXPPgb/qmb3o6wG/91m9999d//de/D/+Cz/3cz/2tF3uxF3ttgPvuu+/WD/mQD3kI/0av8zqv894f/uEf/l0A//AP//Dbn/mZn/k6/Ae45pprHvzar/3a7/XiL/7ir/1iL/Zir80z3XfffbcCXHPNNQ8GuO+++2790R/90c/5rd/6re/mf7hrrrnmwa/92q/9Xi/+4i/+2i/2Yi/22jzAfffdd+tv/dZvffc//MM//M4//MM//DZXXfWf5MyZMw968Rd/8dd5sRd7sde65pprHvxiL/Zir81zue+++279h3/4h9/5h3/4h9++7777bv2Hf/iH3+Z/mNd5ndd5r3d8x3f87GuuuebBAPfdd9+tX//1X/8+//AP//DbPMCLvdiLvfaHf/iHf9c111zzYID77rvv1t/6rd/67h/90R/9HP6V3vEd3/Gz3umd3umz77vvvlu//uu//n3+4R/+4bf5V3id13md9/rwD//w7wb4rd/6re/++q//+vfhma655poHf9M3fdPT77vvvls/5EM+5CFcddVVV1111VXoQQ96EFddddVVV1111RWf+7mf+1sv9mIv9to/8iM/8tk/+qM/+jm8EJ/7uZ/7Wy/2Yi/22v/wD//w22fOnHnwNddc8+D77rvv1g/5kA95CP9KH/7hH/5dr/M6r/PeAD/yIz/y2T/6oz/6OfwnuOaaax78ju/4jp/1Oq/zOu/NA9x33323/sM//MNv/8M//MPv/NZv/dZ38z/MNddc8+DXfu3Xfi+Ad3qnd/psnss//MM//Pbf//3f//Zv//Zvf8999913K1dd9d/gmmuuefCZM2ce9GIv9mKv/eIv/uKv/WIv9mKvzXO57777bv2Hf/iH3/6Hf/iH3/mHf/iH377vvvtu5X+Aa6655sGv/dqv/V7v9E7v9Nk802/91m9992/91m99z4u92Iu91uu8zuu89zXXXPNggPvuu+/W3/qt3/ruH/3RH/0c/h3e8R3f8bPe6Z3e6bPvu+++Wz/rsz7rde67775beRG8zuu8znt/+Id/+HfxTL/1W7/13V//9V//PjzTNddc8+Bv+qZvevp9991364d8yIc8hKuuuuqqq666Cj3oQQ/iqquuuuqqq6664h3f8R0/653e6Z0++7777rv1Qz7kQx7CC/CO7/iOn/VO7/ROn33ffffd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/dzfuu+++279kA/5kIdw1VVXXXXVVVehBz3oQVx11VVXXXXVVVe84zu+42e90zu902fzTL/1W7/13V//9V//PjzTh3/4h3/X67zO67z3j/zIj3z2j/7oj34OL8A111zz4Hd8x3f8rNd5ndd5b4Df+q3f+u4f/dEf/ZzXfu3Xfq93eqd3+myA3/qt3/rur//6r38f/oNdc801D/6cz/mc37rmmmseDPAP//APv/31X//173Pffffdyr/DNddc8+AXe7EXe+0Xe7EXe63XeZ3XeW8e4L777rv1t37rt777H/7hH37nH/7hH36b5/I6r/M67/2O7/iOn3XNNdc8mAe47777bv2t3/qt7/6Hf/iH3/mHf/iH3+aq/xTXXHPNgwHOnDnzYF6As2fP3spzue+++27lqv9S11xzzYNf7MVe7LVf7MVe7LVe53Ve5715pvvuu+/Wf/iHf/jt3/qt3/qef/iHf/ht/gXXXHPNg1/7tV/7vV78xV/8tV/sxV7stXmA++6779bf+q3f+m6AH/3RH/0c/hVe53Ve573f8R3f8bOuueaaB9933323ftZnfdbr3HfffbfyH+B1Xud13vvDP/zDv+u+++679eu//uvf5x/+4R9++3M/93N/68Ve7MVeG+AzP/MzX+cf/uEffpvn8mIv9mKv/bmf+7m/dfbs2Wd88Ad/8IM//MM//Lte53Ve571/67d+67u//uu//n246qqrrrrqqqvQgx70IK666qqrrrrqqis+/MM//Lte53Ve571/5Ed+5LPf6Z3e6bPvu+++Wz/kQz7kITzTT/zETxjgQz7kQx5y33333coLcc011zz4tV/7td/rnd7pnT6b5/L1X//17/Nbv/Vb381/oGuuuebBr/3ar/1e7/RO7/TZAPfdd9+tX//1X/8+//AP//Db/Ae75pprHnzmzJkHv87rvM57vc7rvM578wD33XffrQD/8A//8Nv33Xffre/0Tu/02TzTfffdd+s//MM//PZ9991364/+6I9+Dle9yK655poHA5w5c+bBANdcc82DAc6cOfMggGuuuebBANdcc82DAZ05c+ZB11xzzYP5D3bffffdCiBJtg1w9uzZW7lCgAHuu+++W7lCgHmm++6771Ye4OzZs88AuO+++24F+Id/+Iff5qrLrrnmmge/2Iu92Gu9zuu8znu/2Iu92GvzTGfPnn3Gb/7mb37Xj/7oj34Oz3TNNdc8+LVf+7Xf65prrnnw67zO67w3z+W+++679bd+67e++7d+67e+++zZs8/g3+Gaa6558Od8zuf81jXXXPPgs2fPPuM3f/M3v+tHf/RHP4f/AO/4ju/4We/0Tu/02ffdd9+tZ8+evfXFXuzFXhvgMz/zM1/nH/7hH36b5+Oaa6558Id/+Id/14u92Iu99md+5me+zud+7uf+FsCHfMiHPOS+++67lauuuuqqq666Cj3oQQ/iqquuuuqqq6664sM//MO/63Ve53Xe++u//uvf53Ve53Xe68Ve7MVe++u//uvf57d+67e++3Ve53Xe+8M//MO/67d+67e+++u//uvfhxfRNddc8+AP//AP/64Xe7EXe22A++6779bf+q3f+u4f/dEf/Rz+g7zjO77jZ73TO73TZ/NMP/IjP/LZP/qjP/o5/Be45pprHnzmzJkHv9iLvdhrAbzTO73TZ/MC/MM//MNv33fffbf+wz/8w+/cd999t/7DP/zDb/P/yDXXXPNgnunMmTMPvuaaax4McObMmQcBXHPNNQ8GuOaaax4M6MyZMw+65pprHsy/03333Xcrz3T27NlbeT7OnDnzYJ7LNddc82D+G9x33323nj179tb77rvvGYD/4R/+4Xfuu+++WwH+4R/+4bf5f+iaa6558Gu/9mu/1zu90zt9Ns9033333foP//APv/1iL/Zir33NNdc8mAe47777bv2t3/qt7/6Hf/iH3/mHf/iH3+Y/2DXXXPPg137t136vd3qnd/psgB/5kR/57B/90R/9HP4DfPiHf/h3vc7rvM57A9x33323fv3Xf/37/MM//MNv80K8zuu8znt/+Id/+HfxTL/1W7/13V//9V//Plx11VVXXXXVVQBUrrrqqquuuuqq5+tHfuRHPudzP/dzX/sd3/EdP+u3fuu3vvsd3/EdPwvgt37rt76Hf4UzZ848+MVe7MVeG+Af/uEffvvFXuzFXvud3umdPvt1Xud13vvrv/7r3+cf/uEffpt/o2uuuebBn/M5n/Nb11xzzYMB/uEf/uG3v/7rv/597rvvvlv5L3Lffffdet99990K8Dqv8zrvxQPcd999t549e/bWF3uxF3ttgBd7sRd77Rd7sRfjdV7ndd4b4L777rsV4B/+4R9++x/+4R9+57777rv17Nmzt95333238r/QNddc82CAF3uxF3vtM2fOPOjFX/zFXwfwi73Yi702/0733XffrTzT2bNnb73vvvtuBbjvvvtuBTh79uwzAO67775bAZ89e/YZ99133638B7vmmmseDGDbkgRw5syZB3OFAQFcc801D+YKA+KZzpw58yAe4JprrnkwwDXXXPNggBd7sRd77WuuuebB11xzzYNf7MVeDIDXeZ3XeW8e4L777rv17Nmzt9533323AvzDP/zD79x33323nj179tb77rvvVv4Puu+++2797d/+7e+55pprHvw6r/M67w1wzTXXPPiaa655bx7gH/7hH377Mz/zM1+H/2T33XffrT/6oz/6OQDv9E7v9Nnv9E7v9Nkv/uIv/tqf+Zmf+Tr8O1xzzTUPvuaaax7MM509e/bWf/iHf/ht/gX/8A//8Ns8wG/91m99D1ddddVVV1111f3Qgx70IK666qqrrrrqqis+/MM//Lte53Ve572//uu//n3+4R/+4bc/53M+57euueaaB//Wb/3Wd7/O67zOewO83du9nfhX+KZv+qanX3PNNQ/+kR/5kc/+0R/90c95ndd5nfd+x3d8x8+65pprHgzwW7/1W9/9oz/6o59z33333cqL6Jprrnnwa7/2a7/XO73TO302wH333Xfr13/917/PP/zDP/w2/4WuueaaB7/2a7/2e73O67zOe19zzTUPBrjvvvtu/a3f+q3v/u3f/u3vue+++27lma655poHv9iLvdhrA7zYi73Ya11zzTUPfrEXe7HX5vm47777bj179uyt9913363/8A//8Dv33Xffrf/wD//w2/wPcs011zz4xV7sxV77zJkzD3rxF3/x136xF3ux1+ZfcN99993KM509e/bW++6771aA++6771aAs2fPPgPgvvvuuxXw2bNnn3Hffffdyv8z11xzzYPPnDnz4GuuueZBgF7sxV7sta655poHnzlz5sHXXHPNg/kX3HfffbeePXv2Gffdd9/T77vvvlvPnj37jPvuu+/Ws2fP3nrffffdyv8S11xzzYNf7MVe7LXPnDnzoHd6p3f6bJ7Lfffdd+s//MM//PY111zz4Bd7sRd7bZ7pvvvuu/W3fuu3vvtHf/RHP4f/Atdcc82DP+dzPue3rrnmmgffd999t37WZ33W69x333238q90zTXXPPjDP/zDv+vFXuzFXvu+++67FeCaa6558I/+6I9+zo/8yI98Nv+CD//wD/+u13md13nvf/iHf/jtz/zMz3wdrrrqqquuuuqq+6EHPehBXHXVVVddddVVV3z4h3/4d73O67zOe3/913/9+/zWb/3Wd7/jO77jZ73TO73TZ/NMv/Vbv/XdX//1X/8+vIg+93M/97de7MVe7LX/4R/+4bc/8zM/83V4pmuuuebBr/3ar/1e7/RO7/TZAPfdd9+tv/Vbv/XdP/qjP/o5/Ate53Ve570//MM//Lt4ph/5kR/57B/90R/9HP4LXXPNNQ9+7dd+7fd6p3d6p8/mme67775bf+u3fuu7f/RHf/RzeBFdc801DwZ4sRd7sdd+sRd7sde65pprHvxiL/Zir80LcN999936D//wD78N8A//8A+/c9999936D//wD7/Nf6JrrrnmwS/2Yi/22mfOnHnQNddc8+AXe7EXe+1rrrnmwbwA9913363/8A//8Nv33Xffrf/wD//w22fPnn3GfffddytX/Ye55pprHnzmzJkHX3PNNQ8+c+bMg6655poHX3PNNQ8+c+bMg6+55poH80Lcd999twKcPXv21vvuu+/W++6779azZ88+47777rv1H/7hH36b/ybXXHPNg8+cOfPgF3uxF3stgBd/8Rd/7Rd7sRd7bR7gvvvuu/W3fuu3vhvgR3/0Rz+HBzhz5syDXud1Xue93+md3umzeabf+q3f+u777rvv1h/90R/9HP6TXXPNNQ/+nM/5nN+65pprHnz27Nln/OZv/uZ3/eiP/ujn8CK65pprHvw5n/M5v3XNNdc8+L777rv1Qz7kQx5yzTXXPPibvumbng7wIz/yI5/9oz/6o5/DC/G5n/u5v/ViL/Zir/0jP/Ijn/2jP/qjn8NVV1111VVXXXU/9KAHPYirrrrqqquuuuqKD//wD/+u13md13nvr//6r3+f3/qt3/rua6655sHf9E3f9HSe6UM+5EMect99993Ki+Ad3/EdP+ud3umdPhvgQz7kQx5y33333cpzueaaax782q/92u/1Tu/0Tp8NcN999936W7/1W9/9oz/6o5/D8/GO7/iOn/VO7/ROnw3wD//wD7/99V//9e9z33333cp/kRd7sRd77dd5ndd5r9d5ndd5b57pvvvuu/VHf/RHP+e3fuu3vpv/INdcc82Dz5w58+BrrrnmwS/2Yi/2Wtdcc82DX+zFXuy1eT7uu+++WwH+4R/+4bf/4R/+4Xfuu+++W//hH/7ht/lXuuaaax585syZB7/Yi73Ya11zzTUPvuaaax78Yi/2Yq/NC3Dffffd+g//8A+/fd9999169uzZZ9x3331P/4d/+Iff4ar/Vtdcc82DAc6cOfOga6655iFnzpx50DXXXPPga6655sFnzpx58DXXXPNgXoD77rvv1n/4h3/47X/4h3/4nfvuu+/Wf/iHf/ht/oNcc801DwZ4sRd7sdc+c+bMgwBe/MVf/LVf7MVe7LV5Pu67775br7nmmgffd999t/7Wb/3Wd//2b//299x333238i+45pprHvxiL/Zir/06r/M67/ViL/Zirw1w33333fpbv/Vb3/2jP/qjn8N/omuuuebBr/3ar/1e7/RO7/TZAD/yIz/y2T/6oz/6OfwLrrnmmgd/0zd909MB/uEf/uG3P/MzP/N1eKbXeZ3Xee8P//AP/6777rvv1q//+q9/n3/4h3/4bZ6PF3uxF3vtz/3cz/0tgB/5kR/57B/90R/9HK666qqrrrrqqvuhBz3oQVx11VVXXXXVVVd87ud+7m+92Iu92Gt/5md+5uv8wz/8w28DvOM7vuNnvdM7vdNn33fffbd+/dd//fv8wz/8w2/zL3ixF3ux1/7cz/3c3wL4zM/8zNf5h3/4h9/mhbjmmmse/OEf/uHf9WIv9mKvDXDffffd+qM/+qOf81u/9VvfzTN97ud+7m+92Iu92GsDfP3Xf/37/NZv/dZ381/gmmuuefBrv/Zrv9frvM7rvPc111zzYID77rvv1t/6rd/67t/+7d/+nvvuu+9W/otcc801D36xF3ux136xF3ux1wJ4sRd7sde+5pprHszzcd9999169uzZW++7775b/+Ef/uF37rvvvlv/4R/+4bevueaaB585c+bBL/ZiL/ZaAC/+4i/+2i/2Yi/22rwA9913361nz5699e///u9/++zZs8+47777bv2Hf/iH3+aq/5WuueaaBwOcOXPmwddcc82DX+zFXuy1AF7ndV7nvXku9913363/8A//8Nv/8A//8Dv33Xffrf/wD//w27wQ11xzzYPPnDnz4GuuuebBZ86cedA111zz4GuuuebBL/ZiL/ba/Avuu+++W8+ePXvr3//93/82wG//9m9/z3333Xcr/w5nzpx50Ed8xEd894u92Iu9NsB99913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8A//8Nv8G73Yi73Ya3/u537ubwH8wz/8w28DvNiLvdhrA9x33323/uiP/ujn/NZv/dZ38x/gmmuuefCHf/iHf9eLvdiLvTbAfffdd+tv/dZvffeP/uiPfg7/Q11zzTUPfu3Xfu33ep3XeZ33vuaaax7MA9x33323/tZv/dZ3//Zv//b33HfffbfyIrjmmmsefObMmQdfc801Dzpz5syDAa655poHA1xzzTUPBjhz5syDr7nmmgfz73T27Nln2PbZs2dvBbjvvvtuBXTfffc9/ezZs88AuO+++24FOHv27K0A9913361c9QJdc801D+a5nDlz5sHXXHPNg8+cOfMggBd/8Rd/7WuuueYhZ86ceRAvxH333XcrwD/8wz/89n333XcrwD/8wz/8zj/8wz/8Ns/lzJkzD3rxF3/x13mxF3ux17rmmmse/GIv9mKvzQPcd999t/7DP/zDb589e/YZf//3f//b//AP//Db/A9xzTXXPPjDP/zDv+vFXuzFXhvgvvvuu/VHf/RHP+e3fuu3vpv/INdcc82DX/u1X/u93umd3umzeYB/+Id/+O3P/MzPfB3+la655poHf9M3fdPT77vvvls/5EM+5CEAr/M6r/PeH/7hH/5dv/Vbv/Xd//AP//DbH/7hH/7dv/Vbv/XdX//1X/8+XHXVVVddddVV90MPetCDuOqqq6666qqrrnjHd3zHz3qnd3qnz/6Hf/iH3/6t3/qt7/nwD//w7/qt3/qt7/76r//69+GZrrnmmgd/+Id/+He92Iu92Gvfd999t37WZ33W6wB80zd909MBfuRHfuSzf/RHf/Rz+Dd6ndd5nff+8A//8O8C+Id/+Iff/szP/MzXAXid13md937Hd3zHz7rmmmseDHDffffd+lmf9Vmvc999993Kv9E7vuM7ftY7vdM7fTbAfffdd+uP/uiPfs5v/dZvfTf/w1xzzTUPfu3Xfu33Anind3qnz+YB7rvvvlv/4R/+4bfvu+++W3/0R3/0c/gvcObMmQdJ0pkzZx4McM011zwY8JkzZx58zTXXPBjgmmuueTDPdObMmQdfc801D+bf4b777rtVkmz77Nmzt9533323coXuu+++p589e/YZAPfdd9+tAGfPnr31vvvuu5X/QNdcc82DeS5nzpx5MM/lmmuueTAPcObMmQfxfFxzzTUP5tl0zTXXPIjnpDNnzjyIB7jmmmsezL/Tfffdd+vZs2dv/fu///vfBjh79uwz7rvvvlv/4R/+4bf5d7jmmmse/GIv9mKv9WIv9mKvfc011zz4xV7sxV6bB7jvvvtuPXv27K1///d//9v/8A//8Dv/8A//8Nv8N3ud13md937Hd3zHz7rmmmseDHDffffd+lmf9Vmvc999993Kv9E111zz4Nd+7dd+r3d6p3f6bJ7pR37kRz77H/7hH37nwz/8w7/rmmuuefA//MM//PZnfuZnvg7/Sp/7uZ/7Wy/2Yi/22l//9V//Pr/1W7/13d/0Td/09GuuuebBn/mZn/k611xzzYM+/MM//Lt/67d+67u//uu//n246qqrrrrqqqvuhx70oAdx1VVXXXXVVVddcc011zz4m77pm55+33333QpwzTXXPPjrv/7r3+e3fuu3vpsHuOaaax78OZ/zOb91zTXXPPi+++679ezZs7e+2Iu92Gv/wz/8w29/5md+5uvwb/SO7/iOn/VO7/ROnw3wIz/yI5/9oz/6o5/DA1xzzTUPfu3Xfu33eqd3eqfPBrjvvvtu/a3f+q3v/u3f/u3vue+++27lRfRiL/Zir/3hH/7h33XNNdc8GOBHfuRHPvtHf/RHP4f/Qa655poHv/Zrv/Z7vfiLv/hrv9iLvdhr8wD33Xffrb/1W7/13f/wD//wO//wD//w2/wvcc011zzYtiXpzJkzDwa45pprHgz4zJkzD77mmmseDHDNNdc8GODMmTMPBrjmmmsezL/Dfffdd6sk3XfffU/nOQkwwJkzZx4MIEm2fc011zyY/yXuu+++W3kuZ8+evRXg7//+738b4B/+4R9+57777nv62bNnn8F/kWuuuebBL/ZiL/baL/ZiL/Za11xzzYNf7MVe7LV5gPvuu+/WH/3RH/2c3/qt3/pu/hudOXPmQa/zOq/z3u/0Tu/02QD33Xffrb/927/9Pb/1W7/13ffdd9+tvIiuueaaB7/2a7/2e73TO73TZ/NM//AP//DbX//1X/8+9913360A11xzzYM/53M+57euueaaB//Wb/3Wd3/913/9+/Cv8GIv9mKv/bmf+7m/dfbs2Wf8yI/8yGd/+Id/+Hfdd999t37Ih3zIQ17sxV7stT73cz/3t//hH/7htz/zMz/zdbjqqquuuuqqq+6HHvSgB3HVVVddddVVVz3b537u5/7Wi73Yi702z/R2b/d24vm45pprHvw5n/M5v3XNNdc8GOC+++679UM+5EMewr/Rh3/4h3/X67zO67w3wNd//de/z2/91m99Ny/ANddc8+DXfu3Xfq93eqd3+mye6b777rv1t37rt777t3/7t7/nvvvuu5Xn45prrnnwh3/4h3/Xi73Yi702wH333Xfr13/917/PP/zDP/w2/82uueaaB585c+bBL/ZiL/Za7/RO7/TZPJd/+Id/+O2///u//+0f/dEf/Rz+H7rmmmsebNuSdObMmQdfc801D+YKnzlz5sHXXHPNgwGuueaaBwOcOXPmwddcc82D+Q9033333cpzOXv27K08l/vuu+9WHuC+++67lefj7Nmzz+DZfN999z2D5+SzZ88+gwe47777buV/qWuuuebBL/ZiL/baL/ZiL/Zar/M6r/PePNN999136z/8wz/89m/91m99zz/8wz/8Nv9Nrrnmmge/9mu/9nu90zu902cD3Hfffbf+1m/91nf/6I/+6OfwL3jHd3zHz3qnd3qnz+aZ/uEf/uG3v/7rv/597rvvvlt5Ltdcc82Dv+mbvunpAD/yIz/y2T/6oz/6ObyIrrnmmgd/zud8zm9dc801D77vvvtuveaaax789V//9e/zW7/1W9/9Yi/2Yq/1uZ/7ub/9D//wD7/9mZ/5ma/DVVddddVVV111P/SgBz2Iq6666qqrrrrq2V7sxV7stT/3cz/3twB+67d+67u//uu//n14AV7ndV7nvT/8wz/8uwDuu+++Wz/kQz7kIfwbfO7nfu5vvdiLvdhrA3zmZ37m6/zDP/zDb/MiuOaaax78ju/4jp/1Oq/zOu/NM9133323nj179tbf+q3f+p7f+q3f+m6e6R3f8R0/653e6Z0+m2f6kR/5kc/+0R/90c/hv9E111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bR7gvvvuu/W3fuu3vvsf/uEffucf/uEffpur/s2uueaaB9v2Nddc8xCekwEBnD179lYA25ak++6771au+k9z5syZB734i7/467zO67zOe73Yi73Ya/NM9913362/9Vu/9d0/+qM/+jn8N7nmmmse/I7v+I6f9Tqv8zrvDXDffffd+lu/9Vvf/aM/+qOfw3N5x3d8x896p3d6p8/mme67775bv/7rv/59/uEf/uG3eSFe7MVe7LU/93M/97fuu+++W7/+67/+ff7hH/7ht3kRveM7vuNnvdM7vdNnA9x33323fsiHfMhDAF7sxV7stT73cz/3t//hH/7htz/zMz/zdbjqqquuuuqqq+6HHvSgB3HVVVddddVVVz3bNddc8+AP//AP/64Xe7EXe+3f+q3f+u6v//qvfx+ej2uuuebB3/RN3/R0HuC3fuu3vvvrv/7r34cX0TXXXPPgD//wD/+uF3uxF3vt++6779av//qvf59/+Id/+G3+la655poHv9iLvdhrv9iLvdhrvc7rvM5780z33XffrWfPnr0V4MVe7MVeG+Af/uEffvszP/MzX4f/Jtdcc82DX/u1X/u9Xud1Xue9r7nmmgfzAPfdd9+tv/Vbv/Xdv/3bv/099913361cddX/A9dcc82DX/u1X/u93umd3umzeab77rvv1n/4h3/47d/6rd/6nn/4h3/4bf4bXHPNNQ/+8A//8O96sRd7sdcGOHv27DM+8zM/87Xvu+++W9/xHd/xs17ndV7nva+55poHA9x33323fv3Xf/37/MM//MNv8yJ6x3d8x896p3d6p8++7777bv2sz/qs17nvvvtu5UXwuZ/7ub/1Yi/2Yq8N8PVf//Xv81u/9VvfDfBiL/Zir/W5n/u5v/0P//APv/2Zn/mZr8NVV1111VVXXXU/KlddddVVV1111XO47777bv37v//7336xF3ux177mmmsezAvw4R/+4d8F8A//8A+//fVf//Xv8zmf8zm/9Tqv8zrvDfD1X//178O/4Jprrnnw53zO5/zWNddc8+D77rvv1s/6rM96nfvuu+9W/g3uu+++W++7777v/q3f+q3v/tEf/dHPebEXe7HXfrEXe7HXep3XeZ33vuaaax7MM/3DP/zDb//Wb/3W9/Bf7Jprrnnwa7/2a7/X67zO67z3Nddc82Ce6b777rv1t37rt74b4Ed/9Ec/h6teZNdcc82DAc6cOfNggGuuuebBZ86ceRDPdM011zz4mmuueTDAmTNnHixJZ86ceRAvwH333XcrgCTZNsDZs2dv5QoBvu+++27l2QQY4L777ruVBzh79uwzeC733XffrTyXs2fP3gpw33333cr/Y/fdd9+tP/qjP/o5v/Vbv/XdL/7iL/46r/M6r/NeL/ZiL/ba11xzzXu/zuu8znvfd999t/7Wb/3Wd//oj/7o5/Bf6L777rv167/+69/ntV/7td/rdV7ndd77mmuuefDnfM7n/BbANddc82CA++6779Yf/dEf/Zzf+q3f+m7+lX70R3/0c6655poHv87rvM57f87nfM5vfciHfMhD+Bd87ud+7m+92Iu92GvzTGfOnHkQV1111VVXXXXVvwQ96EEP4qqrrrrqqquuek6v8zqv894f/uEf/l333XffrZ/1WZ/1Ovfdd9+tPJef+ImfMMDbvd3bCeCaa6558Dd90zc9HeC3fuu3vvvrv/7r34cX4MVe7MVe+3M/93N/C+Af/uEffvszP/MzX4f/QC/2Yi/22h/+4R/+Xddcc82DAf7hH/7ht1/sxV7stXmm++6779Z/+Id/+O1/+Id/+J3f+q3f+m7+k1xzzTUPfu3Xfu33eqd3eqfP5pnuu+++W3/rt37ru//hH/7hd/7hH/7ht/l/7Jprrnkwz3TmzJkHX3PNNQ8GOHPmzIMArrnmmgcDXHPNNQ8GuOaaax5y5syZB/F/zH333XerJNn2P/zDP/w2wD/8wz/8zn333XcrwD/8wz/8Nv/PXHPNNQ9+7dd+7fd6p3d6p8/mme67775b/+Ef/uG3f+u3fut7/uEf/uG3+S/0Oq/zOu/94R/+4d/FA/zIj/zIZ//oj/7o5/DvcM011zz4cz7nc37rmmuuefBv/dZvfffXf/3Xvw8vwOd+7uf+1ou92Iu99n333Xfrb/3Wb333O73TO332fffdd+uHfMiHPATgzJkzD/rmb/7mW++7775bP+RDPuQhXHXVVVddddVV96Ny1VVXXXXVVVc9jzNnzjwI4Jprrnnwa7/2a7/Xj/7oj34OD/DhH/7h3wXwW7/1W9/NM9133323fsiHfMhDvumbvunpr/M6r/Pe9913360/+qM/+jk8lxd7sRd77c/93M/9LYB/+Id/+O3P/MzPfB3+g1xzzTUP/vAP//DverEXe7HXBrjvvvtu/fqv//r3+Yd/+Iffvuaaax78Yi/2Yq/9Oq/zOu/1Yi/2Yq99zTXXvPfrvM7rvPc7vuM7ftY//MM//PY//MM//M5v/dZvfTf/Aa655poHv+M7vuNnvc7rvM5780z33XffrT/6oz/6Ob/1W7/13fwfd8011zwY4LVf+7XfC+Caa6558DXXXPNggGuuueYhZ86ceRD/Tvfdd9+tAGfPnr0V4L777rv1vvvuu5VnOnv27DPuu+++WwHOnj17q22fPXv2GbwA11xzzYMBbFuSAM6cOfNgrjCga6655sE8mwEBnDlz5kE8wDXXXPNgnss111zzYJ7LmTNnHgxwzTXXPJhnuuaaa94b4HVe53Xemwe47777bj179uyt99133zPuu+++p589e/YZ9913361nz5699b777ruV/2Puu+++W3/0R3/0c37rt37ru1/8xV/8dV7ndV7nvV7sxV7sta+55pr3fp3XeZ33vu+++279rd/6re/+0R/90c/hP9E111zz4A//8A//rhd7sRd7bYD77rvv1muuuebBANdcc82D+Xe67777bv2sz/qs1/mmb/qmp7/O67zOe589e/YZP/IjP/LZPJfP/dzP/a0Xe7EXe+377rvv1q//+q9/n3/4h3/47Rd/8Rd/7Rd7sRd77Rd7sRd77X/4h3/4ba666qqrrrrqqhcEPehBD+Kqq6666qqrrnpO7/iO7/hZ7/RO7/TZAPfdd9+tH/IhH/IQHuCbvumbnn7NNdc8+DM/8zNf5x/+4R9+mwe45pprHvxN3/RNTwf4kR/5kc/+0R/90c/hmV7sxV7stT/3cz/3twB+67d+67u//uu//n34D/KO7/iOn/VO7/ROn80z/ciP/Mhn/+iP/ujn8Hxcc801D36xF3ux136d13md93qxF3ux1+aZ7rvvvlv/4R/+4bf/4R/+4Xd+67d+67v5V3qxF3ux1/7wD//w77rmmmsezDP9yI/8yGf/9m//9vfcd999t/J/0DXXXPPgF3uxF3vtM2fOPOjFX/zFX/vFXuzFXpsX0X333Xcrz3T27Nlb77vvvlsB7rvvvlsBzp49+wyA++6771aA++677+lnz559Bv8HnTlz5kGS9GIv9mKvDfBiL/Zir3XNNdc8+MyZMw++5pprHswLcfbs2WfY9j/8wz/8NsA//MM//M599913K8A//MM//Db/R1xzzTUPfu3Xfu33ep3XeZ33vuaaax4McN999936D//wD7/9W7/1W9/zD//wD7/Nv9M111zz4Nd+7dd+L4B3eqd3+mye6b777rv1t37rt777R3/0Rz/nmmuuefA3fdM3PR3g7Nmzz/jMz/zM177vvvtu5d/hdV7ndd77wz/8w7/r7Nmzz/i6r/u69/6Hf/iH3+aZPvdzP/e3XuzFXuy177vvvlu//uu//n3+4R/+4bcBXud1Xue9P/zDP/y7/uEf/uG3P/MzP/N1XuzFXuy1PvdzP/e3f+u3fuu7v/7rv/59uOqqq6666qqr7oce9KAHcdVVV1111VVXPad3fMd3/Kx3eqd3+mye6TM/8zNf5x/+4R9+G+B1Xud13vvDP/zDvwvg7d7u7cTz8WIv9mKv/bmf+7m/BfAjP/Ijn/2jP/qjn3PNNdc8+Ju+6ZueDvAjP/Ijn/2jP/qjn8N/gGuuuebBH/7hH/5dL/ZiL/baAP/wD//w25/5mZ/5OryIrrnmmge/2Iu92Gu/zuu8znu92Iu92GvzTPfdd9+t//AP//Dbv/Vbv/U9//AP//DbvADXXHPNg1/7tV/7vV7ndV7nva+55poHA9x33323/tZv/dZ3/+iP/ujn8H/ENddc8+AzZ848+MVe7MVeC+DFX/zFX/vFXuzFXpsX4L777rv1H/7hH377vvvuu/Xs2bPPuO+++24FuO+++55+9uzZZ3DVv8o111zz4DNnzjz4mmuuedCLvdiLvTbANddc8+AXe7EXe23+Bffdd9+tZ8+evfW+++57xn333ff0s2fPPuO+++679ezZs7fed999t/K/zJkzZx704i/+4q/zYi/2Yq/1Oq/zOu/NM9133323/tZv/dZ3//Zv//b33HfffbfyIrrmmmse/Nqv/drv9eIv/uKv/WIv9mKvzQPcd999t/7oj/7o5/zWb/3Wd/MA11xzzYM/53M+57euueaaB9933323ftZnfdbr3Hfffbfy7/CO7/iOn/VO7/ROn33ffffd+lmf9Vmvc9999936uZ/7ub/1Yi/2Yq9933333fr1X//17/MP//APv80zXXPNNQ/+pm/6pqcDfOZnfubrvM7rvM57vc7rvM57/9Zv/dZ3f/3Xf/37cNVVV1111VVX3Q896EEP4qqrrrrqqquuek7v+I7v+Fnv9E7v9Nn33Xffrddcc82D/+Ef/uG3P/MzP/N1AD78wz/8u17ndV7nvb/+67/+fX7rt37ru3kBXud1Xue9P/zDP/y7AH7kR37ks1/8xV/8tV/sxV7stf/hH/7htz/zMz/zdfgP8I7v+I6f9U7v9E6fDXDffffd+vVf//Xv8w//8A+/zb/RNddc8+DXfu3Xfq8Xf/EXf+0Xe7EXe22e6b777rv1H/7hH377t37rt77nH/7hH34b4Jprrnnwa7/2a7/XO73TO302z3Tffffd+lu/9Vvf/aM/+qOfw/9S11xzzYMBXvu1X/u9AF78xV/8dV7sxV7stXgB7rvvvlvPnj1769///d//9tmzZ59x33333foP//APv81V/2XOnDnzIEl6sRd7sdcGeLEXe7HXuuaaax585syZB19zzTUP5oU4e/bsM+67776n33fffbf+1m/91vf8wz/8w2/zv8g111zz4Nd+7dd+r9d5ndd572uuuebBAPfdd9+tv/Vbv/Xdv/3bv/0999133608Hy/2Yi/22i/2Yi/2Wu/0Tu/02TyX++6779bf+q3f+u7f/u3f/p777rvvVl6Aa6655sHv+I7v+Fmv8zqv89733Xffrb/1W7/13T/6oz/6OfwbXXPNNQ/+sA/7sO968Rd/8de+7777bj179uytL/ZiL/ba9913361f//Vf/z7/8A//8Ns8lw//8A//rtd5ndd579/6rd/67td5ndd5b4DP/MzPfJ1/+Id/+G2uuuqqq6666qr7oQc96EFcddVVV1111VXP6R3f8R0/653e6Z0++7d+67e++3Ve53Xe+7777rv167/+69/nH/7hH377J37iJwzwIR/yIQ+57777buWFeJ3XeZ33fsd3fMfPuuaaax7MM73d272d+Hd6sRd7sdd+p3d6p896sRd7sdcG+JEf+ZHP/tEf/dHP4T/QNddc8+DXfu3Xfq8Xf/EXf+0Xe7EXe22e6b777rv1H/7hH377dV7ndd6bZ7rvvvtu/dEf/dHP+a3f+q3v5n+Ra6655sEv9mIv9tpnzpx50Iu/+Iu/9ou92Iu9Ni/Afffdd+vZs2dv/fu///vfBviHf/iH3/mHf/iH3+aq//GuueaaB585c+bB11xzzYNe7MVe7LUBrrnmmge/2Iu92GvzXO67775bJek3f/M3v+sf/uEffucf/uEffpv/Bc6cOfOga6655iGv8zqv816v8zqv894AZ8+efcZv/uZvfteP/uiPfs4111zz4Nd+7dd+r2uuueYhr/M6r/NePMB9991362/91m9999mzZ5/xW7/1W9/Nv8KZM2ce9Dqv8zrv/U7v9E6fDfAjP/Ijn/2jP/qjn8O/0ZkzZx70uZ/7ub99zTXXPBjgvvvuu/Xrv/7r3+cf/uEffpvn45prrnnwN33TNz2dZ/qHf/iH3/7Mz/zM1+Gqq6666qqrrnog9KAHPYirrrrqqquuuuo5veM7vuNnvdM7vdNn/8iP/Mhnv/iLv/hrv9iLvdhr/9Zv/dZ3/8M//MPvfPiHf/h3/dZv/dZ3f/3Xf/378CJ4x3d8x896p3d6p8/mmX7kR37ks3/7t3/7e+67775b+Td4sRd7sdf+3M/93N8CuO+++279+q//+vf5h3/4h9/mP9E111zz4Hd8x3f8rNd5ndd5b57LP/zDP/z2j/zIj3zOP/zDP/w2/0Ndc801Dz5z5syDX+zFXuy1rrnmmgdfc801D36xF3ux1+YFuO+++279h3/4h9++7777bv2Hf/iH3/6Hf/iH3+Gq/5POnDnzoGuuueYhL/ZiL/ZaL/7iL/7aL/ZiL/baPMB9991369mzZ2/9h3/4h9/5+7//+9/+h3/4h9/mf7hrrrnmwa/92q/9Xu/0Tu/02QD33Xffrddcc82DeYD77rvv1t/6rd/67n/4h3/4nX/4h3/4bf6d3vEd3/Gz3umd3umzAX7rt37ru7/+67/+ffg3+tzP/dzferEXe7HXBvit3/qt7/76r//69+GF+NzP/dzferEXe7HXBvj6r//69/mt3/qt7+aqq6666qqrrnog9KAHPYirrrrqqquuuuo5veM7vuNnvdM7vdNn/8iP/Mhn/8M//MPvfO7nfu5v3XfffbeePXv21hd7sRd77a//+q9/n9/6rd/6bl4En/u5n/tbL/ZiL/ba//AP//DbL/ZiL/baAPfdd9+tv/Vbv/XdP/qjP/o5/Cu82Iu92Gt/7ud+7m8B/MM//MNvf+Znfubr8J/sHd/xHT/rdV7ndd77mmuueTDAfffdd+s//MM//PY111zz4Bd7sRd7bZ7pvvvuu/Uf/uEffvu3fuu3vucf/uEffpv/Zi/2Yi/22i/2Yi/2Wu/0Tu/02bwA9913361nz5699e///u9/++zZs8/4+7//+986e/bsM7jq/61rrrnmwWfOnHnQ67zO67z3Nddc8+AXe7EXe20e4L777rv17Nmzt/7Wb/3W99x33323/sM//MNv8z/ENddc8+AzZ848+MVe7MVe653e6Z0+m+fjt37rt77767/+69+H/wQv9mIv9tqf+7mf+1sA9913362f9Vmf9Tr33XffrfwrfO7nfu5vvdiLvdhr33fffbdec801D77vvvtu/YZv+Ib3+fu///vf5gV4x3d8x896p3d6p88GeLu3eztx1VVXXXXVVVc9N/SgBz2Iq6666qqrrrrqOb3jO77jZ73TO73TZ//Ij/zIZ//oj/7o53zu537ub73Yi73Ya/NMb/d2bydeBJ/7uZ/7Wy/2Yi/22v/wD//w25/5mZ/5Otdcc82D3/Ed3/GzXud1Xue9Ae67775bv/7rv/59/uEf/uG3+Re8zuu8znt/+Id/+HcB/NZv/dZ3f/3Xf/378J/kmmuuefBrv/Zrv9c7vdM7fTbPdN999936W7/1W9/9oz/6o5/DM11zzTUPfu3Xfu33ep3XeZ33vuaaax7MM9133323nj179tb77rvv1n/4h3/4nfvuu+/Wf/iHf/ht/hNdc801D37t137t97rmmmse8jqv8zrvxQPcd999t549e/bWv//7v/9tgH/4h3/4nX/4h3/4ba666l9wzTXXPPjFXuzFXvvFXuzFXuuaa6558Iu92Iu9Ng9w33333foP//APv/0P//APv3Pffffd+g//8A+/zX+ha6655sGv/dqv/V4v/uIv/jov9mIv9lo8wH333Xfrb/3Wb303wOu8zuu89zXXXPPgs2fPPuM3f/M3v+tHf/RHP4f/BNdcc82DP+dzPue3rrnmmgffd999t37WZ33W69x333238iL43M/93N96sRd7sde+7777bv36r//693mxF3ux13qnd3qnzz579uwzPvMzP/O177vvvlt5Pj78wz/8u17ndV7nvX/rt37re77+67/+vbnqqquuuuqqq54betCDHsRVV1111VVXXfWcPvzDP/y7Xud1Xue9v/7rv/59fuu3fuu7X+d1Xue9P/zDP/y7AH7rt37ru7/+67/+ffgXvNiLvdhrf+7nfu5vAXzmZ37m6/zDP/zDb/NMr/M6r/Pe7/iO7/hZ11xzzYMBfuu3fuu7f/RHf/Rz7rvvvlt5Pt7xHd/xs97pnd7pswF+5Ed+5LN/9Ed/9HP4T3DNNdc8+LVf+7Xf653e6Z0+m2e67777bv3RH/3Rz/mt3/qt7+aFuOaaax782q/92u/1Oq/zOu99zTXXPJjnct9999169uzZW++7775b/+Ef/uF37rvvvlv/4R/+4bf5d7jmmmse/Nqv/drv9eIv/uKv/WIv9mKvzQPcd999t/7Wb/3Wd//2b//299x33323ctVV/wGuueaaB7/Yi73Ya7/Yi73Ya11zzTUPfrEXe7HX5gHOnj37jL//+7//rX/4h3/4nfvuu+/Wf/iHf/ht/oNdc801D37t137t93qd13md977mmmsezAPcd999t/7Wb/3Wd//2b//299x333238kzXXHPNg1/7tV/7vd7pnd7pswHuu+++W3/rt37ru3/0R3/0c/gPdubMmQd9xEd8xHe/2Iu92Gvfd999t/7Wb/3Wd//oj/7o5/BCfO7nfu5vvdiLvdhr33fffbd+yId8yEMArrnmmgd/+Id/+He92Iu92Gv/yI/8yGf/6I/+6OfwfPzET/yEAX7kR37ks3/0R3/0c7jqqquuuuqqq54betCDHsRVV1111VVXXfWcPvzDP/y7Xud1Xue9v/7rv/59fuu3fuu7r7nmmgd/0zd909MBvv7rv/59fuu3fuu7eSGuueaaB3/TN33T0wE+8zM/83X+4R/+4bd5Ltdcc82DX/u1X/u93umd3umzAe67775bf+u3fuu7f/RHf/RzeIAP//AP/67XeZ3XeW+Ar//6r3+f3/qt3/pu/hO84zu+42e9zuu8zntfc801Dwb4rd/6re/+0R/90c+57777buVf6Zprrnnwi73Yi732mTNnHvTiL/7ir33mzJkHX3PNNQ/m+bjvvvtu/Yd/+Iff/od/+Iffue+++279h3/4h9/mhbjmmmse/Nqv/drv9U7v9E6fzXP5h3/4h9/++7//+9/+0R/90c/hqqv+C1xzzTUPfrEXe7HXfrEXe7HXep3XeZ335rncd999t/7DP/zD7/zDP/zDb//Wb/3Wd/NvcM011zz4tV/7td8L4J3e6Z0+mwe47777bv2t3/qt7wb40R/90c/hX3DmzJkHfcRHfMR3v9iLvdhrA9x33323fv3Xf/37/MM//MNv8x/ommuuefBrv/Zrv9c7vdM7fTbAj/7oj37Oj/zIj3w2z+Waa6558Id/+Id/14u92Iu99n333Xfrh3zIhzyEB7jmmmse/E3f9E1PB/jMz/zM1/mHf/iH3+YB3vEd3/Gz3umd3umzAX7kR37ks3/0R3/0c7jqqquuuuqqq54betCDHsRVV1111VVXXfWcPvzDP/y7Xud1Xue9v/7rv/59fuu3fuu7X+d1Xue9P/zDP/y7AO67775bP+uzPut17rvvvlt5AT73cz/3t17sxV7stf/hH/7htz/zMz/zdXghrrnmmge/9mu/9nu90zu902cD3Hfffbd+/dd//fv8wz/8w29/7ud+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+Id/+O377rvv1n/4h3/4nbNnz95633333cr/Yd/0Td/0dIBrrrnmwfwPcfbs2Wfcd999T7/vvvtu/Yd/+IffAbjvvvtu/Yd/+Iff5r/YNddc8+AzZ848+JprrnnwmTNnHvTiL/7irw3oxV7sxV6LF+K+++679ezZs7f+/d///W8D/MM//MPvAPzDP/zDb/MiOHPmzINe53Ve571f53Ve572vueaaBwOcPXv2GX//93//W7/1W7/1Pf/wD//w2/wXOXPmzINe53Ve573f6Z3e6bMB7rvvvls/67M+63Xuu+++W3kRXHPNNQ9+7dd+7fd6p3d6p88GuO+++279rd/6re/+0R/90c95x3d8x896p3d6p88+e/bsMz74gz/4wbyIPvzDP/y7Xud1Xue9f+u3fuu7X+d1Xue9AT7kQz7kIS/2Yi/22h/+4R/+Xb/1W7/1PV//9V//3lx11VVXXXXVVc8NPehBD+Kqq6666qqrrnpen/u5n/tbL/ZiL/baAL/1W7/13V//9V//PjyXa6655sHf9E3f9HSe6TM/8zNf5x/+4R9+m3+FF3uxF3vtz/3cz/0tgH/4h3/47c/8zM98HZ6Pa6655sGv/dqv/V7v9E7v9NkA9913361f//Vf/z7/8A//8Nu8AC/2Yi/22p/7uZ/7WzzTj/zIj3z2j/7oj34O/0WuueaaB7/2a7/2e73TO73TZ/NM9913362/9Vu/9d0/+qM/+jn8F7rmmmsefObMmQdfc801D36xF3ux17rmmmse/GIv9mKvzQtx33333SpJ991339MB7rvvvlsB7rvvvlvPnj37DID77rvvVoCzZ8/eCnDffffdyv9S11xzzYNtW5J4pjNnzjwYMCCAa6655sFcYUAAZ86ceRAPcM011zyY53LNNdc8mAc4c+bMg3mma6655sG8EPfdd9+tZ8+evfW+++67FdA//MM//PZ9991369mzZ2+97777buXf4JprrnkwwIu92Iu99pkzZx50zTXXPPiaa6558Iu92Iu9Ni/Efffdd+vZs2dvve+++2697777bj179uwz7rvvvlv/4R/+4bf5D3LNNdc8+MVe7MVe+3Ve53Xe68Ve7MVem2e67777bv3RH/3Rz/mt3/qt7+a/yDXXXPPgD//wD/+uF3uxF3vts2fPPuM3f/M3v+tHf/RHP4cX4Jprrnnwa7/2a7/XO73TO302z/QjP/Ijn/2jP/qjn8MzXXPNNQ/+8A//8O96sRd7sdf+rd/6re/++q//+vfhRfBiL/Zir/25n/u5v8Uz/dZv/dZ3f/3Xf/37vM7rvM57f/iHf/h3/dZv/db3fP3Xf/17c9VVV1111VVXPTf0oAc9iKuuuuqqq6666nm92Iu92Gt/7ud+7m8B/NZv/dZ3f/3Xf/378Hy84zu+42e90zu902cD/MiP/Mhn/+iP/ujn8CJ6sRd7sdf+3M/93N8C+Id/+Iff/szP/MzX4V9wzTXXPPhzPudzfuuaa655MMBv/dZvffeP/uiPfs599913K890zTXXPPjDP/zDv+vFXuzFXhvgH/7hH37767/+69/nvvvuu5X/Atdcc82DX/u1X/u93umd3umzeab77rvv1h/90R/97N/6rd/6Hv6HuOaaax4M8GIv9mKv/WIv9mKvdc011zwY4MVe7MVem3+H++6771YASbrvvvueft99990KcN9999169uzZZwDcd999t/JMZ8+evfW+++67lf/Hzpw586BrrrnmIddcc82DX+zFXuy1AK655poHv9iLvdhr80Lcd999t0rS3//93/8WwD/8wz/8zn333Xfr2bNnb+WZXuzFXuy1z5w586BrrrnmIddcc82DXuzFXuy1eSHuu+++WwH+4R/+4bfvu+++W8+ePfuM++677+n/8A//8Dv8Fztz5syDXud1Xue93+md3umzeaazZ88+4zd/8ze/67d/+7e/57777ruV/2TXXHPNg1/7tV/7vd7pnd7pswF+5Ed+5LN/9Ed/9HN4Lu/4ju/4We/0Tu/02TzTP/zDP/z213/917/PfffddyvP5ZprrnnwN33TNz0d4Ed+5Ec++0d/9Ec/hxfB537u5/7Wi73Yi702wGd+5me+zj/8wz/89uu8zuu894d/+Id/12/91m99z9d//de/N1ddddVVV1111XNDD3rQg7jqqquuuuqqq57XNddc8+AP//AP/64Xe7EXe+3f+q3f+u6v//qvfx+ey+u8zuu894d/+Id/F89033333fpbv/Vb3/2jP/qjn8O/4HVe53Xe+8M//MO/C+C3fuu3vvvrv/7r34cX0TXXXPPg137t136vd3qnd/psgPvuu+/W3/qt3/ruH/3RH/2cd3zHd/ysd3qnd/psgPvuu+/W3/qt3/ruH/3RH/0c/gtcc801D37t137t93qnd3qnz+aZ/uEf/uG3f+RHfuRz/uEf/uG3+V/mmmuuebBtX3PNNQ8BuOaaax4McObMmQddc801Dwa45pprHgxw5syZBwNcc801D+bf6L777ruVZzp79uwz7rvvvqfzTPfdd9+tZ8+efQbAfffddyvA2bNnb73vvvtu5X+Ra6655sE8lzNnzjyYB7jmmmsezAO82Iu92Gtdc801Dz5z5syDr7nmmgfzH+C+++67FeAf/uEffvu+++679ezZs8+47777bv2Hf/iH3+Z/oGuuuebBL/ZiL/bar/M6r/NeL/ZiL/baPNM//MM//PZv/dZvfc9v/dZvfTf/yd7xHd/xs97pnd7pswF+5Ed+5LN/9Ed/9HMAXuzFXuy1P/zDP/y7rrnmmgcD3Hfffbd+/dd//fv8wz/8w2/zQrzO67zOe3/4h3/4d9133323fv3Xf/37/MM//MNv8y/43M/93N96sRd7sdcGeLu3ezsBvNiLvdhrf+7nfu5v/cM//MPvfOZnfuZrc9VVV1111VVXPTf0oAc9iKuuuuqqq6666vl7x3d8x896p3d6p8/+h3/4h9/+zM/8zNfhuXz4h3/4d73O67zOe//Wb/3Wd9933323vtM7vdNn33fffbd+/dd//fv8wz/8w2/zArzYi73Ya3/u537ubwH8yI/8yGf/6I/+6Ofwb3DNNdc8+LVf+7Xf653e6Z0+m+fyD//wD7/9mZ/5ma/Df4Frrrnmwe/4ju/4Wa/zOq/z3jzTj/zIj3z2b//2b3/Pfffddyv/z1xzzTUPBjhz5syDAF1zzTUPBjhz5syDrrnmmgcDXHPNNQ8GOHPmzIMBrrnmmgfz73DffffdCnD27Nlb77vvvmcABrjvvvtuPXv27DMA7rvvvlsBzp49e+uZM2cezANcc801D+YBzpw58yCeyzXXXPNgnk3XXHPNg3hOOnPmzIN4pmuuuebB/A9233333Xr27Nln/P3f//1v/cM//MPv/MM//MNv87/AmTNnHvRO7/ROn/06r/M6780znT179hm/+Zu/+V2//du//T333XffrfwneZ3XeZ33/vAP//DvAvit3/qt777mmmse/GIv9mKvDXDffffd+qM/+qOf81u/9VvfzYvoHd/xHT/rnd7pnT77vvvuu/WzPuuzXue+++67lRfgcz/3c3/rxV7sxV4b4OzZs8/4uq/7uvf+h3/4h99+sRd7sdf+3M/93N/6h3/4h9/5zM/8zNfmqquuuuqqq656buhBD3oQV1111VVXXXXV8/c6r/M67/3hH/7h33Xffffd+iEf8iEP4bn8xE/8hAE+5EM+5CH33Xffre/4ju/4We/0Tu/02ffdd9+tX//1X/8+//AP//DbPJcXe7EXe+3P/dzP/S2Ar//6r3+f3/qt3/pu/p0+/MM//Lte53Ve5715gPvuu+/Wf/iHf/jt3/qt3/qef/iHf/ht/hO84zu+42e9zuu8zntfc801Dwa47777bv2t3/qt7/7RH/3Rz+Gqf7VrrrnmwTzTmTNnHnTNNdc8BODMmTMPuuaaax7MM11zzTUPBjhz5syDr7nmmgfzv8h99913K8/l7Nmzt/IA99133608wH333Xcrz+Xs2bPP4Jnuu+++pwPiAf7hH/7ht6+55poHA7zYi73YawO82Iu92Gtdc801Dz5z5syDr7nmmgfzXO67775b/+Ef/uG3/+Ef/uF37rvvvlv/4R/+4bf5H+yaa6558Gu/9mu/14u/+Iu/9ou92Iu9NsB9991362/91m9992//9m9/z3333Xcr/wle7MVe7LU/93M/97d4pvvuu+/W3/qt3/ruH/3RH/0c/pWuueaaB3/4h3/4d73Yi73Ya//DP/zDb3/mZ37m6/B8fO7nfu5vvdiLvdhrA9x33323XnPNNQ/+kR/5kc/+0R/90c95sRd7sdf+3M/93N/6h3/4h9/5zM/8zNfmqquuuuqqq656buhBD3oQV1111VVXXXXV8/c6r/M67/3hH/7h3wXw9V//9e/zW7/1W9/NM73O67zOe3/4h3/4d/3DP/zDb3/mZ37m6/BM7/iO7/hZ7/RO7/TZ9913362f9Vmf9Tr33XffrTzA537u5/7Wi73Yi732b/3Wb33313/9178P/w7XXHPNgz/8wz/8u17sxV7stQF+67d+67vvu+++W1/8xV/8tV/sxV7stXmm++6779bf+q3f+u5/+Id/+J1/+Id/+G3+nd7xHd/xs17ndV7nva+55poHA9x33323/tZv/dZ3/+iP/ujncNV/uWuuuebBPNOZM2cefM011zwIEMCZM2cedM011zwY4JprrnkwwJkzZx589uzZW3mA++6771Ye4L777ruV53L27Nln8Gy+7777nsFz8tmzZ5/BM913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v87rvM5733fffbd+yId8yEM+93M/97de7MVe7LW//uu//n1+67d+67t5Aa655poHf87nfM5vXXPNNQ8G+Id/+Iff/szP/MzX4d/odV7ndd77wz/8w78L4Ed+5Ec++0d/9Ec/h3+ja6655sEv9mIv9tqv8zqv814v9mIv9to803333Xfr2bNnb32xF3ux1+aZfuRHfuSzf/u3f/t77rvvvlu56qqruOaaax78Yi/2Yq/1Yi/2Yq99zTXXPPjFXuzFXpsHuO+++279h3/4h9/+h3/4h9/5rd/6re/mv9E111zz4A//8A//rhd7sRd7bYD77rvv1s/6rM96nfvuu+9Wnumaa6558Gu/9mu/1zXXXPPg13md13lvnum+++679bd+67e++0d/9Ec/h3/BO77jO37WO73TO302wI/8yI989o/+6I9+Dv9KZ86cedDnfu7n/vY111zzYIDP/MzPfJ1/+Id/+G2ej8/93M/9rRd7sRd7bYDf+q3f+u6v//qvfx+uuuqqq6666qrnh3L8+HGuuuqqq6666qrn78Ve7MVe+8Vf/MVf+0//9E9/WhIPechDXvrs2bPPePM3f/OPBviSL/mSt+GFODw83D06Orr0iq/4im8N8A//8A+//ad/+qc/w7/B67zO67z3h3/4h38XwNd//de/zy/8wi98Df8Oh4eHu7feeutf/9Zv/db3/PZv//b3HB4e7r74i7/4a29ubh6/5pprHswz/ciP/Mhn/8M//MPv3HrrrX/NVVddddnh4eHurbfe+jd/+qd/+jO/9Vu/9T2//du//T233nrr3xweHu4+5CEPeenNzc3jD3nIQ176FV/xFd/6dV/3dd/nzd7szT5qc3PzOKCzZ8/eyn+hw8PD3d/6rd/6HoBrrrnmwddcc82DX/EVX/GtNzc3j7/Yi73Ya7/TO73T57zP+7zPV734i7/4az/kIQ95aYD77rvv1u/6ru/6mK//+q9/n3/4h3/4HV4E//AP//A7Z8+efcYrvuIrvvWLv/iLv/Y111zz4D/90z/9Gf4VXumVXultXud1Xue9Ae67775b//RP//Rnzp49eyvPx5kzZx784i/+4q8N8F3f9V0fc/bs2Vu56qqrrrrqqqueH/SgBz2Iq6666qqrrrrq+XvHd3zHz3qnd3qnz/6RH/mRz/6Hf/iH3/ncz/3c3+KZfuu3fuu7v/7rv/59+Bf8xE/8hAHuu+++W6+55poH33fffbf+1m/91nf/6I/+6OfwInrHd3zHz3qnd3qnzwb4+q//+vf5rd/6re/mP9A111zz4A//8A//rhd7sRd7bYDf+q3f+u4Xe7EXe+1rrrnmwTzTfffdd+tv/dZvffdv//Zvf8999913K1ddddXzdc011zwY4LVf+7Xf68Vf/MVf+8Ve7MVem2e67777bgX40R/90c/5rd/6re/mv9iLvdiLvdaHf/iHf/c111zzYJ7Lfffdd+tv/dZvffeP/uiPfg7/DmfOnHnQ537u5/72Nddc8+D77rvv1s/6rM96nfvuu+9W/gWv8zqv894f/uEf/l0Av/Vbv/Xdr/M6r/Pe//AP//Dbn/mZn/k6PB/v+I7v+Fnv9E7v9NkAb/d2byeuuuqqq6666qoXhHL8+HGuuuqqq6666qrn78Ve7MVe+8Vf/MVf+x/+4R9++3GPe9zvvPmbv/lH80zf9V3f9TFnz569lRficz/3c3/rmmuuefA//MM//PaXfumXvs1DHvKQl37IQx7y0i/+4i/+2tdcc82Db7311r85PDzc5YX48A//8O968zd/848G+MzP/MzX+dM//dOf5j/QO77jO37WJ33SJ/30Nddc8+D77rvv1i/5ki95m1/4hV/4ml/4hV/4mt/6rd/67s3NzeMPechDXnpzc/P4i7/4i7/2K73SK73NK77iK74VoFtvvfWvueqqq57D4eHh7uHh4e4//MM//M5v/dZvfc9v/dZvffef/umf/gzAi7/4i7/25ubm8Vd8xVd869d5ndd5783NzeNnz559xuHh4S7/Sa655poHv9mbvdlHffiHf/h3v/mbv/lHb25uHue5/NZv/dZ3f8M3fMP7/Omf/unP8O90dHR06c/+7M9+5hVf8RXf+pprrnnwK77iK771n/3Zn/3M4eHhLi/A67zO67z3h3/4h38XwNd//de/z2//9m9/z0Me8pCXfrEXe7HXftzjHvc799133608l3d6p3f67GuuuebBP/IjP/LZ//AP//A7XHXVVVddddVVLwjl+PHjXHXVVVddddVVz9+LvdiLvfaLv/iLv/Y//MM//Paf/umf/sw111zz4Ic85CEvDfD1X//178ML8Tqv8zrv/eZv/uYfDfBZn/VZr3Pffffd+g//8A+/c3h4uPviL/7ir/2QhzzkpV/x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Ndc8+E//9E9/hn8jSbziK77iW19zzTUPBvit3/qt7/76r//69+GFODw83L3mmmse/OIv/uKvDfCnf/qnP/PhH/7h3w3wXd/1XR/ziq/4im999uzZW//0T//0Z7jqqquuuuqqq14Q9KAHPYirrrrqqquuuur5e7EXe7HX/tzP/dzfArjvvvtuPXv27K2f+Zmf+ToA11xzzYM//MM//Lte7MVe7LXvu+++W//hH/7ht1/ndV7nve+7775bP+RDPuQhvIiuueaaB3/4h3/4d73Yi73Ya9933323fv3Xf/37nD179tbXfu3Xfq93eqd3+myA++6779av//qvf59/+Id/+G1eBNdcc82DP/zDP/y7XuzFXuy1AX7rt37ru7/+67/+ffgf5Jprrnnwi73Yi732mTNnHnTNNdc8+MVe7MVe+5prrnkwz+W+++67FeAf/uEffucf/uEffvu+++679R/+4R9+m6uu+j/kmmuuefBrv/Zrv9c111zz4Nd5ndd5bx7gvvvuu/W3fuu3vvvs2bPPeJ3XeZ33erEXe7HXBrjvvvtu/Yd/+Iff/q3f+q3v+Yd/+Iff5j/JNddc8+Bv+qZvejrAP/zDP/z2Z37mZ74O/wrXXHPNg1/7tV/7vd7pnd7ps3mA3/qt3/rur//6r38f/gVnzpx50Dd/8zffet999936D//wD7/9Oq/zOu/9W7/1W9/zD//wD7/94R/+4d/1W7/1W9/99V//9e/DVVddddVVV131gqAHPehBXHXVVVddddVVL9jnfu7n/taLvdiLvTbAb/3Wb33313/9178Pz3TNNdc8+MM//MO/68Ve7MVem2f6zM/8zNf5h3/4h9/mRXDNNdc8+MM//MO/68Ve7MVe+7777rv1Qz7kQx7CA7zYi73Ya3/4h3/4d11zzTUPvu+++279rd/6re/+0R/90c/hhXjHd3zHz3qnd3qnzwa47777bv36r//69/mHf/iH3+Z/gWuuuebBZ86cefA111zzoBd7sRd77WuuuebBL/ZiL/baPJf77rvvVoB/+Id/+J1/+Id/+O377rvv1n/4h3/4ba666n+wa6655sEAL/ZiL/baZ86cedA111zz4GuuuebBL/ZiL/baPJf77rvv1t/6rd/67t/6rd/67rNnzz6DBzhz5syD3umd3umzX+d1Xue9eaazZ88+4zd/8ze/60d/9Ec/h/8E11xzzYM/53M+57euueaaB9933323ftZnfdbr3HfffbfyL3jHd3zHz3qnd3qnz+aZfuRHfuSzf/u3f/t7vumbvunpAF//9V//Pr/1W7/13fwLPvdzP/e3XuzFXuy1eabP/MzPfJ1rrrnmwR/+4R/+Xb/1W7/13V//9V//Plx11VVXXXXVVS8IetCDHsRVV1111VVXXfWCveM7vuNnvdM7vdNnA/zWb/3Wd3/913/9+/AA11xzzYM/53M+57euueaaB//DP/zDb3/mZ37m6/Ai+vAP//Dvep3XeZ33vu+++279kA/5kIfwfFxzzTUPfu3Xfu33eqd3eqfPBrjvvvtu/a3f+q3v/tEf/dHP4QGuueaaB3/4h3/4d73Yi73YawP8wz/8w29/5md+5uvwv9w111zz4DNnzjz4mmuuedCLvdiLvfY111zz4Bd7sRd7bZ7LfffddyvAP/zDP/zOP/zDP/z2fffdd+s//MM//DZXXfVf7JprrnnwmTNnHvxiL/ZirwXw4i/+4q/zYi/2Yq/FC3Hffffd+g//8A+/fd999936oz/6o5/Di+Caa6558Gu/9mu/1+u8zuu89zXXXPNggH/4h3/47b//+7//7R/90R/9HP6DnTlz5kGf+7mf+9vXXHPNg++7775bP+uzPut17rvvvlt5Pl7sxV7stT/8wz/8u6655poHA/zDP/zDb3/913/9+9x33323ArzO67zOe3/4h3/4d9133323ftZnfdbr3HfffbfyQrzO67zOe3/4h3/4dwH8wz/8w29/5md+5uu8zuu8znt/+Id/+Hf91m/91nd//dd//ftw1VVXXXXVVVe9IOhBD3oQV1111VVXXXXVC3bNNdc8+Ju+6ZueDvBbv/Vb3/31X//178Nz+aZv+qanX3PNNQ8G+JEf+ZHP/tEf/dHP4V/w4R/+4d/1Oq/zOu/9D//wD7/9mZ/5ma/Dv+Caa6558Id/+Id/14u92Iu9NsBv/dZvfc+P/uiPfvZ999136zu+4zt+1ju90zt9NsB9991369d//de/zz/8wz/8Nv9HXXPNNQ8+c+bMg6+55poHvdiLvdhrX3PNNQ9+sRd7sdfm+bjvvvtu/Yd/+Iff+Yd/+Iffvu+++279h3/4h9/mqqv+na655poHA7zYi73Ya585c+ZB11xzzYOvueaaB7/Yi73Ya/NC3Hfffbf+wz/8w2/fd999t549e/YZ9913363/8A//8Nv8O1xzzTUPfrEXe7HXep3XeZ33frEXe7HXBvit3/qt7/7RH/3Rz7nvvvtu5T/QNddc8+DP+ZzP+a1rrrnmwffdd9+tn/VZn/U6991336080zXXXPPgD//wD/+uF3uxF3ttgPvuu+/Wr//6r3+ff/iHf/htnsuHf/iHf9frvM7rvPd9991364d8yIc8hBfimmuuefA3fdM3PR3g67/+69/nt37rt777dV7ndd77wz/8w7/rt37rt77767/+69+Hq6666qqrrrrqBaFy1VVXXXXVVVe9UPfdd9+t//AP//DbL/ZiL/ba99133608l9d5ndd572uuuebBPNM7vdM7fTbAj/7oj34OL8CLvdiLvfbrvM7rvDfAj/zIj3wOL4L77rvv1q//+q9/n9d+7dd+r3d6p3f67Nd5ndd5rxd7sRd7LYBrrrnmwQD/8A//8Nuf+Zmf+Tr8H3fffffdet999936D//wD/zWb/3W9wBcc801DwZ4sRd7sdd6sRd7sde+5pprHvxiL/Zir33NNdc8+Jprrnnw67zO67wXz3Tffffd+g//8A+/c9999z39H/7hH37nH/7hH36bq656Pq655poHnzlz5sEv9mIv9loAL/7iL/7aL/ZiL/bavBD33XffrWfPnr317//+738b4B/+4R9++x/+4R9+h/8k991336333Xffrf/wD//wO6/92q/9Xu/0Tu/02a/zOq/z3i/+4i/+Or/5m7/5XT/6oz/6OfwHue+++279rM/6rNf58A//8O96sRd7sdf+3M/93N/+uq/7uvc+e/bsra/92q/9Xu/0Tu/02QD33Xffrb/1W7/13T/6oz/6ObwAP/IjP/LZL/ZiL/ba11xzzYPf8R3f8bN+9Ed/9HN4Ac6cOfNgnunMmTMP4qqrrrrqqquu+tdAD3rQg7jqqquuuuqqq164d3zHd/ysd3qnd/rsf/iHf/jtz/zMz3wdHuDDP/zDv+t1Xud13vu3fuu3vvsf/uEffufDP/zDv+u+++679bd+67e++0d/9Ec/h+fjm77pm55+zTXXPPhHfuRHPvtHf/RHP4d/pWuuuebBr/3ar/1e7/RO7/TZPNOP/MiPfPaP/uiPfg5XPcs111zzYIAXe7EXe60Xe7EXe+1rrrnmwS/2Yi/22jwf9913363/8A//8DuA/+Ef/uF37rvvvlsBzp49e+t99913K1f9n3XNNdc8GODFXuzFXvvMmTMPuuaaax5yzTXXPOjFXuzFXpsX4r777rv1H/7hH377vvvuu/Xs2bPPuO+++279h3/4h9/mv9k111zz4Nd+7dd+r3d6p3f6bID77rvv1s/6rM96nfvuu+9W/oNcc801D37t137t93qnd3qnz77vvvtuveaaax7MM/3Ij/zIZ//oj/7o5/AieLEXe7HX/tzP/dzfuu+++279+q//+vf5h3/4h9/mubzYi73Ya3/u537ub/FM9913360f8iEf8pDXeZ3Xee8P//AP/67f+q3f+u6v//qvfx+uuuqqq6666qoXhMpVV1111VVXXfUie7EXe7HXfrEXe7HX/od/+Iff5ple7MVe7LUBfuu3fut7/uEf/uG3z5w586B3eqd3+uzXeZ3Xee9/+Id/+J1/+Id/+G0e4MM//MO/65prrnnwP/zDP/z2j/7oj34O/wb33XffrS/+4i/+2jzA67zO67y3JP3Ij/zIZ3PVZffdd9+tAPfdd9+tv/Vbv/U9PNM111zz4Bd7sRd7rRd7sRd77WuuuebBL/ZiL/ba11xzzYOvueaaBwO8zuu8znvzfNx33323Apw9e/YZgO+7775bAe67775bz549+wyA++6771aAs2fP3nrffffdylX/Y1xzzTUPPnPmzINf7MVe7LUAXvzFX/y1X+zFXuy1eSHuu+++W8+ePXvr3//93/82wD/8wz/8zj/8wz/8Nv+D3Xfffbf+6I/+6OecPXv21nd8x3f87GuuuebBn/M5n/Nbv/Vbv/XdP/qjP/o5/Ae47777bv2Hf/iH37nvvvtuveaaax7MM33mZ37m6/zDP/zDb/Mi+od/+Iff/pEf+ZHPfqd3eqfP/vAP//Dv+pAP+ZCH8ADXXHPNgz/3cz/3twD+4R/+4bcBXuzFXuy1X/zFX/y177vvvlsBrrnmmgdz1VVXXXXVVVe9MFSuuuqqq6666qp/ldd5ndd5r3/4h3/4bYDXeZ3Xee9rrrnmwQD/8A//8NsAP/qjP/o5AO/0Tu/02R/+4R/+XZ/1WZ/1Ovfdd9+tAC/2Yi/22q/zOq/z3gA/8iM/8jn8G33u537ub73Yi73YawN8/dd//fucOXPmQe/0Tu/02e/4ju/4Wa/92q/9Xr/1W7/13b/927/9Pffdd9+tXPU87rvvvlvvu+++W3/rt37re3ima6655sEv9mIv9lpnzpx58DXXXPPga6655sEAZ86cefA111zzYIBrrrnmwQDXXHPNgwFe7MVejBfFfffddyvA2bNnb73vvvueARjgvvvuu/Xs2bPPALjvvvtuBTh79uyt9913361c9a92zTXXPJhnerEXe7HXPnPmzIOuueaaB19zzTUPfrEXe7HX5oW47777bv2Hf/iH377vvvtuPXv27K333XffM/7hH/7ht/lf7Ld+67e+5x/+4R9+57Vf+7Xf653e6Z0++53e6Z0++3Vf93Xf5+u+7uve+x/+4R9+m3+ja6655sHv+I7v+Fmv8zqv894A9913363XXHPNgwFe7MVe7LX+4R/+4bf5V/jt3/7t73nxF3/x136xF3ux1/7wD//w7/r6r//69wG45pprHvxN3/RNTwf4h3/4h9/+zM/8zNd5x3d8x896sRd7sdd+7dd+7ff6rd/6re/hqquuuuqqq656UaAHPehBXHXVVVddddVVL9w7vuM7ftY7vdM7fTbAfffdd+uHfMiHPATgwz/8w7/rdV7ndd77t37rt77767/+69+HZ7rmmmse/I7v+I6f9Tqv8zrvfd999936WZ/1Wa9z33333fpN3/RNT7/mmmse/CM/8iOf/aM/+qOfw7/B537u5/7Wi73Yi732fffdd+vXf/3Xv88//MM//DbANddc8+AP//AP/64Xe7EXe22e6b777rv1R3/0Rz/nt37rt76bq/7drrnmmgcDnDlz5kGArrnmmgcDnDlz5kHXXHPNgwGuueaaBwOcOXPmwddcc82D+Tc6e/bsM2wb4OzZs7fed999twK67777nn727Nln8Ez33XffrWfPnr0V4L777ruV/2bXXHPNg3mAM2fOPJgHuOaaax7MM505c+ZBPJdrrrnmwTzTNddc8xDAPNOZM2ceLEm2DXDNNdc8mH+F++6779azZ8/e+vd///e/DfAP//APv/MP//APv83/A9dcc82DP+dzPue3rrnmmgffd999t/7Wb/3Wd//oj/7o5/Cv9I7v+I6f9U7v9E6fzTP9yI/8yGf/6I/+6Oe84zu+42e90zu902cD/OiP/ujn/MiP/Mhn869wzTXXPPibvumbng7w9V//9e/zD//wD7/94R/+4d/1Yi/2Yq/9D//wD7/9mZ/5ma8DcM011zz4m77pm55+9uzZZ/zmb/7md73TO73TZ3/913/9+/zWb/3Wd3PVVVddddVVV70g6EEPehBXXXXVVVddddUL947v+I6f9U7v9E6fzTN95md+5uv8wz/8w29/0zd909OvueaaB3/Ih3zIQ+67775beYBrrrnmwR/+4R/+XS/2Yi/22vfdd9+t//AP//Dbr/M6r/Pe//AP//Dbn/mZn/k6/Bt87ud+7m+92Iu92Gvfd999t37913/9+/zDP/zDb/NcXuzFXuy1X+d1Xue9Xud1Xue9eab77rvv1n/4h3/47d/6rd/6nn/4h3/4ba76L3XNNdc8GODMmTMPvuaaax4ECODMmTMPuuaaax4McM011zwY4MyZMw++5pprHsy/0X333XerJNn2vbvLS3ct+5lLN7t7P6d7L+ydrQd3PaW/+OQ/j2m5v7r25d7o1C2PfGWA/uJT/rxeuvXvAa655poH80zXXHPNgwEBBjhz5syDASTJtq+55poH8z/EfffddyvA2bNnb73vvvtuve+++249e/bsM+67775b/+Ef/uG3+X/ummuuefBrv/Zrv9c7vdM7fTbAfffdd+uP/uiPfs5v/dZvfTf/ghd7sRd77c/93M/9LZ7pH/7hH37767/+69/nvvvuu5Vnep3XeZ33/vAP//DvAviRH/mRz/7RH/3Rz+Ff4XVe53Xe+8M//MO/67777rv17Nmzt77Yi73Ya//DP/zDb3/mZ37m6/AAn/u5n/tbL/ZiL/baPNNnfuZnvs4//MM//DZXXXXVVVddddULgh70oAdx1VVXXXXVVVe9cO/4ju/4We/0Tu/02ffdd9+t11xzzYP/4R/+4bd/67d+63s+/MM//LsA3u7t3k48H9dcc82DP+dzPue3rrnmmgfzTJ/5mZ/5Ov/wD//w2/wrfe7nfu5vvdiLvdhr33fffbd+/dd//fv8wz/8w2/zQlxzzTUPfrEXe7HXfp3XeZ33erEXe7HX5pnuu+++W3/7t3/7e/7+7//+t//hH/7ht7nqf6QzZ848SJIAzpw58+BrrrnmwYDPnDnz4GuuuebBANdcc82DAc6cOfNggGuuuebB/De77777buUBzp49eysPcN99993KM91333238lzOnj37DJ7pvvvuezogHuC+++57uiQB3Hfffbdy1b/aNddc8+AP//AP/64Xe7EXe22A3/qt3/qe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bZ6PF3/xF39tgDNnzjyYq6666qqrrrrq3wI96EEP4qqrrrrqqquuetG84zu+42e90zu902f/wz/8w29/5md+5uvwTK/zOq/z3h/+4R/+Xf/wD//w23//93//2+/0Tu/02ffdd9+tn/VZn/U699133608l8/93M/9rRd7sRd77R/90R/9nB/5kR/5bF5E11xzzYM/53M+57euueaaB589e/YZv/mbv/ldP/qjP/o5/B9z5syZB734i7/467zYi73Ya11zzTUPfrEXe7HX5vk4e/bsM/7+7//+t/7hH/7hd+67775b/+Ef/uG3uQqE1p+y84v0mgPUX159Y/nj9Y/xAHlzfbHx/Te/AWOA7uv33zvO5TO46j/cNddc8+AXe7EXe+0zZ8486JprrnnwNddc8+AXe7EXe22ej3/4h3/47b//+7//7R/90R/9HP4XOHPmzIO++Zu/+VaAf/iHf/jtM2fOPPiaa655MMCP/MiPfPaP/uiPfg4vxDu+4zt+1ju90zt99n333Xfrh3zIhzyE5/JiL/Zir/25n/u5v8UzfeZnfubrXHPNNQ/+8A//8O/6rd/6re/++q//+vfhqquuuuqqq676l1C56qqrrrrqqqv+1c6cOfNgHuDFXuzFXgvg7//+73/7t3/7t7/nxV7sxV77xV/8xV/7cz7nc37rQz7kQx7CA7zjO77jZ73Yi73Ya9933323/siP/Mhn869w33333fpZn/VZr/Par/3a7/VO7/ROn/1O7/ROn/06r/M67/31X//17/MP//APv83/EWfPnn3Gb/3Wb333b/3Wb303z3TmzJkHvfiLv/jrvNiLvdhrXXPNNQ9+sRd7sdc+c+bMg17ndV7nvV/ndV7nvXmms2fPPuPv//7vf+sf/uEffue+++679R/+4R9+m/9nfEzX5kv1b0BQAPiF5dfyXPzg8tL52O61AGiMOvQFrvp3ueaaax78Yi/2Yq995syZB11zzTUPvuaaax78Yi/2Yq/NC3Dffffdevbs2Vv//u///rcBfvRHf/Rz+F/m7Nmzz/jMz/zM1/ncz/3c33qxF3ux1wa47777bv36r//69/mHf/iH3+Zf8Nu//dvf8+Iv/uKv/WIv9mKv/eEf/uHf9fVf//XvwzNdc801D/7cz/3c3zp79uwz/v7v//63Xud1Xue93+md3umzfuu3fut7uOqqq6666qqr/jWoXHXVVVddddVV/2rXXHPNg1/ndV7nvX/rt37ruwFe7MVe7LUBfvu3f/t77rvvvlu//uu//r0/93M/97evueaaB3/u537ub33mZ37m6wBcc801D36nd3qnzwb4+q//+vfh3+C+++679Ud/9Ec/57d+67e++3M/93N/+5prrnnwh3/4h3/Xb/3Wb333j/7oj34O/0edPXv2Gb/1W7/13b/1W7/13QDXXHPNg237xV/8xV/nxV7sxV7rmmuuefCLvdiLvfaZM2ce9Dqv8zrv/Tqv8zrvDXDffffdKkl///d//1v/8A//8Dv33Xffrf/wD//w2/wfljfURxEUnkl3tH/gmX7iJ37CAG/5k+/xxTyTzuYztPIBV/2LrrnmmgcDvNiLvdhrnzlz5kEv/uIv/tpnzpx58DXXXPNgXoD77rvv1rNnz97693//978N8A//8A+/8w//8A+/zf8B7/iO7/hZ7/RO7/TZPIAknT179lZeBPfdd9+tX//1X/8+3/RN3/T013md13nv3/7t3/6ev//7v//ta6655sHf9E3f9HSA++677+k/+qM/+jmv8zqv895nzpx5MM90zTXXPJirrrrqqquuuupFQeWqq6666qqrrvo3eZ3XeZ33+q3f+q3vfp3XeZ33uuaaax4McN99990KcPbs2Wd81md91ut8zud8zm+92Iu92Gu/4zu+42f96I/+6Od8+Id/+HcB/NZv/dZ3/8M//MNv8+9w9uzZZ3zWZ33W67z2a7/2e73TO73TZ7/TO73TZ7/u677u+3zd133de//DP/zDb/N/3H333XcrwG/91m9992/91m99N8A111zzYNt+8Rd/8dd5sRd7sde65pprHvxiL/Zirw3wOq/zOu/9Oq/zOu8NcN99990qSX//93//W//wD//wO/fdd9+t//AP//Db/B/hm8pjeSatfBBn8xk8l7y5vjjPFLdP/4AxVz3LNddc82CA137t134vgBd/8Rd/nRd7sRd7LV6I++6779Z/+Id/+O377rvv1rNnzz7jvvvuu/Uf/uEffpv/g17sxV7stT/8wz/8u6655poHA/zWb/3Wd//oj/7o53zO53zOb11zzTUP/pzP+Zzf+qzP+qzXue+++27lX3Dffffd+vVf//Xv8+Ef/uHf9eEf/uHf/cEf/MEP/vAP//DvAviHf/iH3/7Mz/zM1wH4h3/4h99+sRd7sdd+x3d8x88C+K3f+q3v4aqrrrrqqquuelGgBz3oQVx11VVXXXXVVS+ad3zHd/ysd3qnd/psnukzP/MzX+d1Xud13ut1Xud13vu3fuu3vvvrv/7r34cHuOaaax78Td/0TU8H+Id/+IfffrEXe7HXBni7t3s78R/ommuuefDnfM7n/NY111zzYIAf+ZEf+ewf/dEf/Ryu4pprrnnwmTNnHnTNNdc85MVe7MVe65prrnnwi73Yi702z+W+++67VZL+/u///rf+4R/+4Xfuu+++WwHOnj1763333Xcr/4uM77v5ddObLD4cIJ4+/fXsE3dfhmf6iZ/4CQO82T0fcKuviQcD1J84+oLuh48+nf+HrrnmmgefOXPmwS/2Yi/2WgAv/uIv/tov9mIv9tq8EPfdd9+t//AP//Db9913361nz559xn333XfrP/zDP/w2/w9cc801D/7wD//w73qxF3ux1wa47777bv36r//69/mHf/iH3wa45pprHvw5n/M5v3XNNdc8+L777rv1sz7rs17nvvvuu5V/wTXXXPPgD//wD/+uF3uxF3ttnum+++679UM+5EMewjO9zuu8znu/4zu+42ddc801Dwb4zM/8zNf5h3/4h9/mqquuuuqqq676l6AHPehBXHXVVVddddVVL5p3fMd3/Kx3eqd3+mye6Ud+5Ec++3Ve53Xe+5prrnnwh3zIhzzkvvvuu5Xn8jqv8zrv/eEf/uHfxTN95md+5uv8wz/8w2/zH+yaa6558Gu/9mu/1zu90zt9NsB999136z/8wz/89m/91m99zz/8wz/8Nlc9yzXXXPPgM2fOPOiaa655yIu92Iu91jXXXPPgF3uxF3ttXoj77rvvVp7p7Nmzz7jvvvueDnDffffdevbs2WcA3HfffbcCnD179tb77rvvVv6brD/r2G/ki3evC1B+d/0D/dftvzvP9BM/8RMGeNPhg0YqHUD/1fvvUv5g/cP8H3bNNdc8+MyZMw9+sRd7sdcCePEXf/HXfrEXe7HX5gW47777bgX4h3/4h9++7777bv2Hf/iH3z579uwz7rvvvlv5f+od3/EdP+ud3umdPptn+pEf+ZHP/tEf/dHP4bmcOXPmQZ/7uZ/729dcc82D77vvvls/5EM+5CG8CK655poHf9M3fdPTAe67775bP+RDPuQhPMDrvM7rvPeHf/iHfxfP9HZv93biqquuuuqqq656UVC56qqrrrrqqqv+1f7hH/7ht1/sxV7std/pnd7ps3mm++6771aej9/6rd/67nd8x3f8rGuuuebB/Ce67777bv3RH/3Rz/nt3/7t73nHd3zHz3qd13md977mmmve+3Ve53Xe+7777rv1t37rt777R3/0Rz+Hq7jvvvtuve+++279h3/4h9/5rd/6re8GuOaaax585syZB11zzTUPOXPmzINe/MVf/LUBzpw58+Brrrnmwddcc82DeaZrrrnmwS/2Yi/2WrwI7rvvvlsBzp49e+t99913K6D77rvv6WfPnn0GwH333XcrwNmzZ28FuO+++27l38k3lsfwTLq9/T3PT6XjmeK29vf8H3DNNdc8GODMmTMPfrEXe7HXAnjxF3/x136xF3ux1+YFuO+++24F+K3f+q3vBviHf/iH3/mHf/iH3+aqZ3mxF3ux1/7wD//w77rmmmseDPAP//APv/2Zn/mZr8MLcPbs2Wd81md91ut8zud8zm9dc801D37Hd3zHz/rRH/3Rz+Ff8I7v+I6fxTP96I/+6OfwQvzoj/7o53DVVVddddVVV72oqFx11VVXXXXVVf9qf//3f//bAC/2Yi/22gC/9Vu/9d28AC/2Yi/22tdcc82DeaYP//AP/67P+qzPep377rvvVv4T3Hfffbd+/dd//fv86I/+6Oe89mu/9nu90zu902dfc801D36nd3qnz36d13md9/6Hf/iH3/6t3/qt7/mHf/iH3+aqZ7nvvvtuve+++279h3/4h98B+NEf/dHP4QGuueaaB/NMZ86cedA111zzEIAzZ8486JprrnkwwDXXXPNggDNnzjz4mmuueTDANddc82CAa6655sEv9mIvxovivvvuu1WS7rvvvqcD3HfffbcC3HfffbeePXv2GQD33XffrQBnz5699b777ruVZ/K2TvlYnOGZ4o7pH3hh1l7q3vZU/hNcc801D+YBzpw582Ce6Zprrnkwz3TmzJkH8VyuueaaBwMCfM011zyYZ7rmmmseYtsA11xzzYN5Ed133323nj179ta///u//22Af/iHf/idf/iHf/htrnqBrrnmmge/4zu+42e9zuu8znsD3Hfffbd+/dd//fv8wz/8w2/zL7jvvvtu/fqv//r3+dzP/dzfep3XeZ33ftzjHvc7f//3f//bvADv+I7v+Fmv8zqv894804u92Iu91m/91m99Ny/Ab/3Wb303V1111VVXXXXVi4rKVVddddVVV131b/L3f//3v/1iL/Zirw3wW7/1W9/DC/DhH/7h3wXwIz/yI5/94i/+4q/9Yi/2Yq/9OZ/zOb/1IR/yIQ/hP9F9991364/+6I9+zm/91m9994u/+Iu/zuu8zuu814u92Iu99jXXXPPer/M6r/Pe9913362/9Vu/9d2//du//T333XffrVz1Qt1333238kz33Xffrf/wD//wO7wIrrnmmgcDnDlz5sHXXHPNgwGfOXPmwddcc82DAa655poHA5w5c+bB11xzzYMBrrnmmgcDnDlz5kEAL/ZiL8a/5L777rsVgFC5t1ys93IegPMvf8ebn92+9xTAfffddyvP9BI8EgDt59mbXm3xTjzAmTNnHsQDXHPNNQ8BDHDNNdc8mCsE+MyZMw/mma655poH89/ovvvuu/Xs2bO3Avz93//9bwP8wz/8w+/8wz/8w29z1b/KO77jO37WO73TO302z/QjP/Ijn/2jP/qjn8O/wj/8wz/89o/8yI989ju90zt99od/+Id/9wd/8Ac/mOfjxV7sxV77nd7pnT4b4Ou//uvf+8M//MO/+8Ve7MVemxfgt37rt777vvvuu5WrrrrqqquuuupFReWqq6666qqrrvo3OXv27DN4pn/4h3/4bZ6PD//wD/+ua6655sH/8A//8Ns/+qM/+jm//du//T2f8zmf81vXXHPNgz/8wz/8u77+67/+ffhPdvbs2Wf81m/91nf/1m/91ndfc801D37t137t93qd13md977mmmse/E7v9E6f/Tqv8zrv/Q//8A+//Q//8A+/81u/9VvfzVX/oe67775bAe67775b/+Ef/oEXxTXXXPNg277mmmseAnDNNdc8GODMmTMPuuaaax4McM011zwY4MyZMw++5pprHnzNNdc8mGe6hjO8BM/0Bnwgb8AH8ly+JD4OAK7hFj6c7+I/wX333XcrD3D27Nlbeab77rvvVp7pvvvuu5Xncvbs2WcABnTffffdyjPdd999T5ckgPvuu+9WrvoPdc011zz4cz7nc37rmmuueTDAP/zDP/z2Z37mZ74O/0a//du//T2v8zqv897XXHPNg9/xHd/xs370R3/0c3iAF3uxF3vtz/3cz/0tgK//+q9/n9/6rd/6ntd5ndd57xd7sRd77Rd7sRd77X/4h3/4bZ7pdV7ndd6Lq6666qqrrrrq34LKVVddddVVV131b/JiL/Zir8UzvdiLvdhr/8M//MNv8wAv9mIv9tqv8zqv894AP/IjP/I5APfdd9+tn/VZn/U63/RN3/T013md13nvs2fPPuNHfuRHPpv/Ivfdd9+tP/qjP/o5v/Vbv/XdL/7iL/46L/ZiL/Zar/M6r/Pe11xzzXu/zuu8znu/4zu+42f91m/91nf/wz/8w+/8wz/8w29z1X+L++6771aAs2fPPgPgH/7hH/iXXHPNNQ8GOPUK17/V+N6bX32tTgFw3W3H/+7624//PThOP/q6V32J04+5GeBv/SQA4p72lLNPuOf3eYD77rvvVh7g7NmztwICuO+++27lCgM6e/bsrTzTfffddytX/a90zTXXPPi1X/u13+ud3umdPhvgvvvuu/Xrv/7r3+cf/uEffpt/h/vuu+/Wr//6r3+fz/3cz/2t13md13nvf/iHf/idf/iHf/htgBd7sRd77c/93M/9LYAf+ZEf+ezf+q3f+m6Av//7v//tF3uxF3vt13md13mvf/iHf/htgBd7sRd77Rd7sRd7ba666qqrrrrqqn8L9KAHPYirrrrqqquuuupF847v+I6f9U7v9E6f/SM/8iOf/Tqv8zrvfc011zwY4B/+4R9++zM/8zNfhwf43M/93N96sRd7sdf+kR/5kc/+0R/90c/hAV7sxV7stT/3cz/3twDuu+++Wz/rsz7rde67775b+W9wzTXXPPi1X/u13+vFX/zFX/vFXuzFXptnuu+++2790R/90c/5rd/6re/mqv81fKY8aP31J57ioALoUt6ru9tTEOFT5aZfuObbbgZ40/wgAPov23+b8qfrn+aq/3euueaaB7/2a7/2e73u677u+5w5c+ZB9913363XXHPNg3/kR37ks3/0R3/0c/gP9OEf/uHf9Tqv8zrvfd999936IR/yIQ+55pprHvxN3/RNTwf4h3/4h9/+zM/8zNfhma655poHf9M3fdPT77vvvls/5EM+5CEAH/7hH/5dr/M6r/PeAL/1W7/13V//9V//Plx11VVXXXXVVS8qyvHjx7nqqquuuuqqq140L/ZiL/baL/7iL/7aknjIQx7y0jzAn/3Zn/3M4eHhLsDrvM7rvNebv/mbf/R9991365d+6Ze+Dc/l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//Vf/z48wDXXXPPgb/qmb3o6wI/8yI989o/+6I9+Dv9Brrnmmge/9mu/9nu90zu902cDnD179hlf93Vf997/8A//8Nv8H3LNNdc8+MyZMw+65pprHvJiL/Zir/ViL/Zir33NNdc8mOdy33333foP//APv/MP//APv33ffffd+g//8A+/zVWXLX/stAF+Mb4FgDfND0Jn2zPmH3rxwVz1H+Kaa6558Iu92Iu99pkzZx704i/+4q/9Yi/2Yq/NC3DffffdCvBbv/Vb33327Nln/NZv/dZ387/IO77jO37WO73TO302wH333Xfr13/917/PP/zDP/w2/0bv+I7v+Fnv9E7v9Nk804/8yI989o/+6I9+DsCLvdiLvdbnfu7n/jbP9CEf8iEPue+++27lqquuuuqqq656UVG56qqrrrrqqqv+3V7ndV7nvQH+4R/+4Xd4Lvfdd9+tn/mZn/k6n/u5n/tb7/RO7/TZZ8+efcZv/dZvfTf/Ae67775bf/RHf/Rzfvu3f/t7PudzPue3rrnmmgd/+Id/+Hf91m/91nf/6I/+6Ofwf8R9991363333XfrP/zDP/zOb/3Wb303wDXXXPPgF3uxF3utM2fOPPjFX/zFX/vFXuzFXvuaa6558DXXXPPg13md13kvnum+++679R/+4R9+5x/+4R9++7777rv1H/7hH36b/2d8Jh7M8+Ez5UFc9a92zTXXPPjFXuzFXvvMmTMPevEXf/HXPnPmzIOvueaaB/MC3Hfffbf+wz/8w2/fd999t/7DP/zD7/zDP/zDb/O/1Iu92Iu99od/+Id/1zXXXPNggB/5kR/57B/90R/9HP6d/uEf/uF3eKZ/+Id/+O0f/dEf/Ryej3/4h3/47fvuu+9Wrrrqqquuuuqqfw0qV1111VVXXXXVv9lv/dZvfffrvM7rvDfP9A//8A+/zfPxD//wD7/9Iz/yI5/9Tu/0Tp/9ju/4jp9133333foP//APv81/kPvuu+/Wz/qsz3qd137t136vd3qnd/rsd3qnd/rs13md13nvr//6r3+ff/iHf/ht/g+67777br3vvvtuBfjRH/3RzwG45pprHvxiL/Zir/ViL/Zir33NNdc8+MVe7MVe+5prrnnwNddc8+DXeZ3XeS+A++6779azZ8/eet999z3jH/7hH377vvvuu/Uf/uEffpv/w3Q2b60/evTZ0ztufDYPUH/s6HO46gW65pprHnzmzJkHv9iLvdhrXXPNNQ+55pprHvRiL/Zir80LcN999936D//wD79933333foP//APv3P27Nlb77vvvlv5P+Caa6558Du+4zt+9uu8zuu8F8B9991369d//de/zz/8wz/8Nv8B3umd3umzeKYf+ZEf+RxegN/6rd/6Hq666qqrrrrqqn8tKlddddVVV1111b/ZfffddyvP9A//8A+/fd99993KC/CjP/qjnwPwTu/0Tp/94R/+4d/1WZ/1Wa9z33333cp/kPvuu+/WH/3RH/2c3/7t3/6ez/mcz/mta6655sEf/uEf/l3/8A//8Du/9Vu/9d3/8A//8Nv8H3fffffdet999936W7/1W98DcM011zwY4MVe7MVe68Ve7MVe+5prrnnwi73Yi732Nddc8+AXe7EX43Ve53XeC+C+++679ezZs7f+wz/8w+/8/d///W//wz/8w2/zf0z3Y0efE2fbM/gIvgug/4b99ym/vf5uruKaa6558JkzZx78Yi/2Yq8F8OIv/uKv82Iv9mKvxQtw33333Xr27Nlb//7v//63z549+4z77rvv1n/4h3/4bf6Pesd3fMfPeqd3eqfP5pl+5Ed+5LN/9Ed/9HP4D/K5n/u5v/ViL/Zir80zvc7rvM57/cM//MNv83z8wz/8w29z1VVXXXXVVVf9a1G56qqrrrrqqqv+zc6ePfuMv//7v//tF3/xF3/t++6771b+Bb/927/9PS/+4i/+2i/2Yi/22h/+4R/+XZ/5mZ/5OvwHu++++279rM/6rNd57dd+7fd6p3d6p8++5pprHvw6r/M673Xffffd+qM/+qOf81u/9Vvfzf8T9913360A9913362/9Vu/9T0A11xzzYPPnDnz4GuuueZBL/ZiL/bar/M6r/Pe11xzzYOvueaaB7/Yi73Ya7/jO77jZwHcd999t549e/ZWQPfdd9/TAe67775bz549+wyA++6771aAs2fP3nrffffdyv8C5bfX381H8F0A5bfX383/M9dcc82Dz5w58+AXe7EXey2AF3/xF3/tF3uxF3ttXoD77rvv1rNnz97693//978N8A//8A+/8w//8A+/zf8T11xzzYM//MM//Lte7MVe7LUB/uEf/uG3v/7rv/597rvvvlv5D/K5n/u5v/ViL/Zir33ffffd+vVf//Xv87mf+7m/9WIv9mKvzQNcc801Dwb4h3/4h9++7777buWqq6666qqrrvrXonLVVVddddVVV/27XHPNNQ8GeLEXe7HX5l9w33333fr1X//17/M5n/M5v/ViL/Zir/3hH/7h3/X1X//178N/sPvuu+/WH/3RH/2c3/7t3/6e137t136vd3qnd/rsa6655sEf/uEf/l3v+I7v+Fn/8A//8Du/9Vu/9d3/8A//8Nv8P3Pffffdet999936D//wD/zWb/3W93z913/9+1xzzTUPfrEXe7HXfrEXe7HXuuaaax78Yi/2Yq99zTXXPPiaa655MMCLvdiLvRb/grNnzz7Dts+ePXsrwH333XcroPvuu+/pZ8+efQbAfffdd+vZs2dvBbjvvvtu5ar/FNdcc82DAV77tV/7vQBe/MVf/LVf7MVe7LV5Ae67775bz549e+vf//3f/zbAP/zDP/z2P/zDP/wO/4+94zu+42e90zu902cD3Hfffbd+/dd//fv8wz/8w2/zH+gd3/EdP+vFXuzFXhvg67/+69/nH/7hH3777//+73/7xV/8xV/7xV7sxV77H/7hH34b4B3f8R0/m6uuuuqqq6666t+DylVXXXXVVVdd9W/2Oq/zOu91zTXXPBjgmmuuefCLvdiLvfY//MM//DYvxH333XfrZ33WZ73ON33TNz39dV7ndd77vvvuu/VHf/RHP4f/BPfdd9+tP/qjP/o5v/3bv/09L/ZiL/bar/M6r/NeL/ZiL/ba11xzzYNf53Ve573uu+++W3/0R3/0c37rt37ru/l/7L777rv1vvvu++7f+q3f+m6e6ZprrnnwmTNnHgz4mmuueQjAmTNnHnTNNdc8GOCaa6558JkzZx4McM011zz4zJkzDwK45pprHgzwYi/2YvxL7rvvvlsBzp49+wzA9913360A9913361nz559BsB9991369mzZ28FuO+++27l/6hrrrnmwTzAmTNnHswzXXPNNQ/mmc6cOfMgHuCaa655MCDA11xzzYNf7MVe7LV5Ae67775bAX7rt37ruwH+4R/+4Xf+4R/+4be56lle7MVe7LU//MM//LuuueaaBwP8yI/8yGf/6I/+6OfwH+zFXuzFXvud3umdPhvgMz/zM1/nH/7hH34b4B/+4R9++8Vf/MVf+3Ve53Xe6x/+4R9++8Ve7MVe+5prrnkwV1111VVXXXXVvweVq6666qqrrrrq3+zFXuzFXpsHeJ3XeZ33+od/+Iff5l9w33333fr1X//17/PhH/7h3/U6r/M67/0P//APv/MP//APv81/kvvuu+/W++6777t/67d+67uvueaaB7/2a7/2e73TO73TZ19zzTUP/vAP//Dvesd3fMfP+u3f/u3v+fu///vf/od/+Iff5iruu+++W++7775bAf7hH/7hd/gXnDlz5kGSdObMmQcDXHPNNQ8GfObMmQdfc801Dwa45pprHnzmzJkHA1xzzTUPvuaaax4McM011zwY4MVe7MX4l9x33323Apw9e/bW++6771ZAgP/hH/7hdwDuu+++WwHOnj1763333XcrD/CLv/iLv71cLgH4xV/8xd9+0zd909fmX3DNNdc8mAc4c+bMg3mma6655sE805kzZx7EA1xzzTUP5gpdc801D+KZzpw582BJsu1rrrnmwfwnue+++279h3/4h9++7777bv2Hf/iH3/mHf/iH3+aqF+iaa6558Gu/9mu/1zu90zt9NsB9991369d//de/zz/8wz/8Nv/BXuzFXuy1P/dzP/e3AH7kR37ks//hH/7ht3mmf/iHf/htgBd7sRd7bYDXeZ3XeS+uuuqqq6666qp/L/SgBz2Iq6666qqrrrrqX+fDP/zDv+t1Xud13vu+++67FeC3fuu3vvud3umdPvu+++679UM+5EMewovoHd/xHT/rdV7ndd4b4Ld+67e++0d/9Ec/h/8i11xzzYNf7MVe7LVf53Ve571e7MVe7LV5pvvuu+/WH/3RH/2c3/qt3/purvpPdc011zwY4MyZMw+65pprHsIzvdiLvdhrAVxzzTUPBjhz5syDr7nmmgfzb3RwcHDHyZMnbzp//vy4vb3dAezv74833HBD9+QnP/mPz58/vzpz5syDAa655poH89/gvvvuu5UHOHv27K0803333Xcrz3TffffdygOcPXv2GYAB3XfffbeePXv21vvuu+9WrnqRveM7vuNnvdM7vdNn80w/8iM/8tk/+qM/+jn8J7jmmmse/E3f9E1PB/iHf/iH3/7Mz/zM1+G5fO7nfu5vvdiLvdhrf+ZnfubrfPiHf/h3XXPNNQ8G+Id/+Iff/szP/MzX4aqrrrrqqquu+tdCD3rQg7jqqquuuuqqq/513vEd3/Gz3umd3umzeabP/MzPfJ13eqd3+qwXe7EXe+3P/MzPfJ1/+Id/+G1eBGfOnHnQ67zO67z3O73TO302wD/8wz/89td//de/z3333Xcr/4WuueaaB7/2a7/2e73TO73TZ/NM9913362//du//T1///d//9v/8A//8Ntc9T/CNddc82CAM2fOPPiaa655MGBAL/ZiL/ZaANdcc82DAc6cOfPga6655sH8O91333238gBnz569lWe67777buWZ7rvvvlt5gLNnzz6DK3zfffc9g2c6e/bsrbYtSffdd9+tXPXf4pprrnnwa7/2a7/XO73TO302z/QP//APv/31X//173Pffffdyn+Sz/3cz/2tF3uxF3vtf/iHf/jtz/zMz3wdno93fMd3/Kx3eqd3+uz77rvv1muuuebB9913363XXHPNg//hH/7htz/zMz/zdbjqqquuuuqqq/610IMe9CCuuuqqq6666qp/ndd5ndd57w//8A//Lp7pMz/zM18H4MM//MO/C+CzPuuzXue+++67lRfR67zO67z3h3/4h38XwNmzZ5/xm7/5m9/1oz/6o5/Df7FrrrnmwS/2Yi/22q/zOq/zXi/2Yi/22jzTfffdd+uP/uiPfs5v/dZvfTdX/a9y6623+uabb26ttfLEJz6RYRgA6Pue137t16aUkr/xG78Rr/d6r/cQgPvuu+9Wrvo/6Zprrnnwa7/2a7/XO73TO302D3Dffffd+lu/9Vvf/aM/+qOfw3+iz/3cz/2tF3uxF3vt++6779YP+ZAPeQgvwIu92Iu99ud+7uf+Fs/0W7/1W9/9Oq/zOu/9D//wD7/9mZ/5ma/DVVddddVVV131r0Xlqquuuuqqq676V/uHf/iH3+a5nD179tazZ8/e+mIv9mKv/bmf+7m//cEf/MEP5kX0W7/1W9/9D//wD7/9ju/4jp/1Oq/zOu/9Tu/0Tp8N8KM/+qOfw3+h++6779b77rvvu3/rt37ru6+55poHv/Zrv/Z7vdM7vdNnX3PNNQ/+8A//8O96x3d8x8/67d/+7e/5rd/6re++7777buWq/xXuuOOOUmsdt7e3Ox7gb//2b8dpmrrt7W3uu+++W7nq/5xrrrnmwa/92q/9Xq/zOq/z3tdcc82Deab77rvv1t/6rd/67t/+7d/+nvvuu+9W/pN97ud+7m+92Iu92Gvfd999t37WZ33W6/BCnD179lYe4B/+4R9+53Ve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d3qnd/psgPvuu+/W3/qt3/ruH/3RH/0c/o0+93M/97de7MVe7LX/4R/+4bc/8zM/83UArrnmmgd/0zd909N5prd7u7cTV1111VVXXXXVvwWVq6666qqrrrrq3+2+++679Zprrnnwi73Yi73WP/zDP/w2z8dv/dZvffeLv/iLv/aLvdiLvfaHf/iHf9dnfuZnvg7/Tvfdd9+tn/VZn/U6r/3ar/1e7/RO7/TZ7/iO7/hZr/3ar/1en/VZn/U699133638D3bffffdet999936D//wD7/9oz/6o58DcM011zz4xV7sxV77xV7sxV7rmmuuefCLvdiLvTbANddc896v8zqv894A9913363/8A//8Nv/8A//8Dv33Xffrf/wD//w21x11f9w11xzzYPPnDnz4Bd7sRd7LYAXf/EXf50Xe7EXey2e6b777rv1t37rt777H/7hH37nH/7hH36b/6GuueaaB3/4h3/4d73Yi73YawP8wz/8w29/5md+5uvw7/C5n/u5v/ViL/Zir/0P//APv/2Zn/mZr8Pz8Vu/9VvfzVVXXXXVVVdd9W+FHvSgB3HVVVddddVVV/3bfO7nfu5vvdiLvdhr/8iP/Mhnv9M7vdNn33fffbd+yId8yEN4Aa655poHf87nfM5vXXPNNQ/+kR/5kc/+0R/90c/hP8g111zz4M/5nM/5rWuuuebB9913362/9Vu/9d0/+qM/+jn8L3bNNdc8+MyZMw++5pprHvw6r/M67/ViL/Zir81zue+++24F+Id/+Iff/od/+Iffue+++279h3/4h9/mqufrJ37iJwzwdm/3duKq/xTXXHPNg1/sxV7stc+cOfOgF3/xF3/tF3uxF3ttno/77rvvVoDf+q3f+u4f/dEf/Rz+h3vHd3zHz3qnd3qnzwa47777bv36r//69/mHf/iH3+bf4XM/93N/68Ve7MVe+7777rv1Qz7kQx7CA1xzzTUP/qZv+qanA3zmZ37m6/zDP/zDb3PVVVddddVVV/1bULnqqquuuuqqq/7d/uEf/uF3/uEf/uG3X+zFXuy1X+zFXuy1/+Ef/uG3eT7uu+++Wz/rsz7rdb7pm77p6e/0Tu/02WfPnn3Gb/3Wb303/wHuu+++Wz/zMz/ztV/ndV7nvd/pnd7ps9/pnd7ps1/8xV/8tb/+67/+fe67775b+V/ovvvuu/W+++679R/+4R/4rd/6re8GuOaaax78Yi/2Yq/9Yi/2Yq91zTXXPPjFXuzFXhvgmmuuee/XeZ3XeW+A++6779azZ8/e+vd///e//Q//8A+/8w//8A+/zVVX/Qe75pprHnzmzJkHv9iLvdhrAbz4i7/4a7/Yi73Ya/N83HfffbcC/NZv/dZ3A/zDP/zDb//DP/zD7/C/wDXXXPPgD//wD/+uF3uxF3ttgN/6rd/67q//+q9/H/6d3vEd3/GzXuzFXuy1Ab7+67/+fXguL/ZiL/baPNM//MM//DZXXXXVVVddddW/FZWrrrrqqquuuuo/xN///d//9ou92Iu99uu8zuu81z/8wz/8Ni/Afffdd+vXf/3Xv8+Hf/iHf9c7vdM7ffZ999136z/8wz/8Nv8Bzp49+4wf/dEf/RyAd3qnd/rsF3uxF3vtz/3cz/3t3/zN3/yuH/3RH/0c/g+47777br3vvvu++7d+67e+G+Caa6558JkzZx58zTXXPPjFXuzFXut1Xud13vuaa6558DXXXPPgF3uxF3ttnum+++679R/+4R9++x/+4R9+57777rv1H/7hH36bq656EV1zzTUPfrEXe7HXPnPmzINe/MVf/LVf7MVe7LV5Ae67775bz549e+vf//3f//Y//MM//M4//MM//Db/S73jO77jZ73TO73TZwPcd999t37913/9+/zDP/zDb/Pv9GIv9mKv/U7v9E6fDfCZn/mZr/MP//APv81zebEXe7HXAjh79uwzuOqqq6666qqr/j3Qgx70IK666qqrrrrqqn+bz/3cz/2tF3uxF3vtz/zMz3yds2fP3vpN3/RNT7/vvvtu/ZAP+ZCH8C94x3d8x896p3d6p8++7777bv2QD/mQh/Af7Jprrnnwh3/4h3/Xi73Yi702wH333Xfrj/7oj37Ob/3Wb303/8ddc801D36xF3ux136xF3ux17rmmmse/GIv9mKvzXM5e/bsM+67776n33fffbf+1m/91vf8wz/8w2/z/8BP/MRPGODt3u7txFXP45prrnnwmTNnHvxiL/Zir3XNNdc8+Jprrnnwi73Yi702z8d99913K8Bv/dZvfTfAP/zDP/zOP/zDP/w2/wdcc801D/7wD//w73qxF3ux1wb4kR/5kc/+0R/90c/hP8A111zz4G/6pm96OsCP/MiPfPaP/uiPfg7Px0/8xE8Y4OzZs8/44A/+4Adz1VVXXXXVVVf9W1G56qqrrrrqqqv+Q9x33323/sM//MNvv9iLvdhrv/iLv/hr//3f//1v80L89m//9ve82Iu92Gu/+Iu/+Gt/7ud+7m995md+5uvwH+i+++679TM/8zNf5x3f8R0/63Ve53Xe+5prrnnwh3/4h3/XO77jO37Wb//2b3/Pb/3Wb333fffddyv/B91333233nfffd/9W7/1W98NcObMmQdJ0ou92Iu99ou92Iu91jXXXPPgF3uxF3vtM2fOPOjFXuzFeJ3XeZ33Bjh79uwz/v7v//63/uEf/uF37rvvvlv/4R/+4be56v+ka6655sEAr/3ar/1eAC/+4i/+2i/2Yi/22rwA9913363/8A//8Nv33Xffrf/wD//wO//wD//w2/wf9Y7v+I6f9U7v9E6fDXDffffd+vVf//Xv8w//8A+/zX+QD//wD/8ugH/4h3/47R/90R/9HJ6P13md13lvrrrqqquuuuqq/yhUrrrqqquuuuqq/zB///d//9sv9mIv9trv+I7v+Nl///d//9q8EPfdd9+tX//1X//en/u5n/vbL/ZiL/ba7/iO7/hZP/qjP/o5/Af70R/90c/57d/+7e95sRd7sdd+ndd5nfd6sRd7sdd+x3d8x8967dd+7ff6h3/4h9/+rd/6re/5h3/4h9/m/7CzZ88+A+C+++777t/6rd/6boAzZ8486MVf/MVf58Ve7MVe65prrnnwi73Yi732mTNnHvQ6r/M67/06r/M6780znT179hm2ffbs2Vvvu+++W7lC//AP//DbAPfdd9+tAGfPnr31vvvuu5Wr/se55pprHnzmzJkHv9iLvdhrvfiLv/hrv9iLvdhr8wLcd999t549e/bWv//7v/9tgH/4h3/4nX/4h3/4bf4fuOaaax78OZ/zOb91zTXXPBjgR37kRz77R3/0Rz+H/0Cf+7mf+1sv9mIv9tr/8A//8Nuf+Zmf+Tq8AK/zOq/zXlx11VVXXXXVVf9RqFx11VVXXXXVVf9m9913360v9mIvxv1++7d/+3ve6Z3e6bOvueaaB/MiOHv27DO+/uu//n0+93M/97fe6Z3e6bMBfvRHf/Rz+A9233333Xrfffd992/91m999zXXXPPgd3zHd/ys13md13nva6655r1f53Ve573vu+++W3/7t3/7e37kR37ks/l/4uzZs8/4rd/6re/+rd/6re8GuOaaax5s2y/+4i/+Oi/2Yi/2Wtdcc82Dz5w58+BrrrnmwQDXXHPNg1/sxV6M+73O67zOe/EC3HfffbcCnD179hn33Xff0wHuu+++W8+ePfsMgPvuu+9WgLNnz95633333cpV/yGuueaaBwO89mu/9nsBvPiLv/hrv9iLvdhr8wLcd999t/7DP/zDb9933323/sM//MPv/MM//MNv8//UO77jO37WO73TO302wH333Xfr13/917/PP/zDP/w2/4E+/MM//Lte7MVe7LXvu+++W7/+67/+fXghXuzFXuy1ueqqq6666qqr/qNQueqqq6666qqr/s3uu+++WwFe53Ve573+4R/+4bfvu+++W//hH/7ht1/sxV7stV/ndV7nvX/rt37ru/kX/MM//MNv/8iP/Mhnv9M7vdNnv9M7vdNnS9KP/MiPfDb/Se67775bv/7rv/59fvRHf/RzXvu1X/u9Xud1Xue9r7nmmge/4zu+42e99mu/9nv9wz/8w2//1m/91vf8wz/8w2/z/8h99913K8Bv/dZvffdv/dZvfTfPdObMmQdJ0pkzZx58zTXXPBjgzJkzD7rmmmseDHDNNdc8GODMmTMPvuaaax4McM011zwY4Jprrnnwi73Yi70W/4KzZ88+w7bPnj17K8B99913K6B/+Id/+G2A++6771aAs2fP3nrffffdyv9y11xzzYN5gDNnzjyYZ7rmmmseDHDmzJkH8QDXXHPNg7lC11xzzYN4pjNnzjxYks6cOfMgXoD77rvv1rNnz97693//97999uzZZ9x33323/sM//MNvcxXXXHPNgz/3cz/3t8+cOfMggB/5kR/57B/90R/9HP6DvdiLvdhrv87rvM57A3z913/9+9x333238gK8zuu8znsD/MM//MNvv9iLvdhrc9VVV1111VVX/XuhBz3oQVx11VVXXXXVVf8211xzzYO/6Zu+6en33XffrR/yIR/yEIDXeZ3Xee8P//AP/6777rvv1s/6rM96nfvuu+9WXgTv+I7v+Fnv9E7v9NkA9913362f9Vmf9Tr33Xffrfwnu+aaax78Yi/2Yq/9Oq/zOu/1Yi/2Yq/NM9133323/uiP/ujn/NZv/dZ3c9WL7Jprrnkwz3TmzJkHXXPNNQ8BOHPmzIOuueaaBwNcc801DwY4c+bMg6+55poH829w33333Qpw9uzZZ9x3331PB7jvvvtuPXv27DMA7rvvvlsBzp49e+t99913K8/0Ez/xEwZ4u7d7O/ECXHPNNQ/mmc6cOfNgnumaa655MM905syZB/EA11xzzYMBXXPNNQ/iAa655pqH2PY111zzYP6T3XfffbcC/NZv/dZ3A/zDP/zD7/zDP/zDb3PV87jmmmse/Nqv/drv9U7v9E6fDXDffffd+vVf//Xv8w//8A+/zX+wF3uxF3vtz/3cz/0tgM/8zM98nX/4h3/4bV6Iz/3cz/2tF3uxF3vtH/mRH/nsd3qnd/rss2fPPuODP/iDH8xVV1111VVXXfVvhR70oAdx1VVXXXXVVVf9233O53zOb734i7/4a3/mZ37m6/zDP/zDbwN8+Id/+He9zuu8znvfd999t37Ih3zIQ3gRXXPNNQ/+nM/5nN+65pprHnzffffd+lu/9Vvf/aM/+qOfw3+Ra6655sGv/dqv/V7v9E7v9Nk803333Xfrb/3Wb333b//2b3/PfffddytX/Yc7c+bMgyTpzJkzDwa45pprHgz4xV7sxV4b4JprrnkwwJkzZx58zTXXPJh/g7Nnzz7Dtq+55poHA/zDP/zDb19zzTUPse1rrrnmwfwXuu+++27lAc6ePXsrz3TffffdCnDffffdygOcPXv2GVzh++677xk809mzZ2+17bNnzz6Dq16oa6655sGv/dqv/V6v8zqv897XXHPNgwHuu+++W3/rt37ru3/0R3/0c/hPcM011zz4m77pm54O8CM/8iOf/aM/+qOfw7/gJ37iJwzwIR/yIQ/5pm/6pqefPXv2GR/8wR/8YK666qqrrrrqqn8r9KAHPYirrrrqqquuuurf7h3f8R0/653e6Z0++7d+67e+++u//uvfB+DMmTMP+tzP/dzfvuaaax78W7/1W9/99V//9e/Di+jMmTMPep3XeZ33fqd3eqfPBviRH/mRz/7RH/3Rz+G/0DXXXPPgF3uxF3vt13md13mvF3uxF3ttgPvuu+/Wf/iHf/jt3/qt3/qef/iHf/htrvpvdc011zwY4MyZMw+65pprHgJw5syZB11zzTUPBrjmmmseDHDmzJkHX3PNNQ/mX+G+++67lWc6e/bsrTzTfffddyvPdN99993KA5w9e/YZgO+7775n8AD33Xff0yXpvvvuu5Wr/stdc801D37t137t93rxF3/x136xF3ux1+aZ7rvvvlt/67d+67t/+7d/+3vuu+++W/lP8rmf+7m/9WIv9mKv/Q//8A+//Zmf+Zmvw7/gwz/8w7/rdV7ndd77t37rt777R3/0Rz/nm77pm55+9uzZZ3zwB3/wg7nqqquuuuqqq/6t0IMe9CCuuuqqq6666qp/uzNnzjzom7/5m2+97777bv2QD/mQh/BM11xzzYO/6Zu+6ekAP/IjP/LZP/qjP/o5/Cu84zu+42e90zu902cDnD179hmf+Zmf+dr33XffrfwXu+aaax78ju/4jp/1Oq/zOu/NM9133323/tZv/dZ3/+iP/ujncNX/CmfOnHmQJH3TN33T0wE+8zM/83Xuu+++p0vSfffddytX/Z9yzTXXPPi1X/u13+ud3umdPptnuu+++279rd/6re/+h3/4h9/5h3/4h9/mP9nnfu7n/taLvdiLvfZ9991364d8yIc8hBfBN33TNz39mmuuefBnfuZnvs7Zs2dv/aZv+qannz179hkf/MEf/GCuuuqqq6666qp/K8rx48e56qqrrrrqqqv+7Y6Oji69+Iu/+Gs/5CEPeel/+Id/+J2zZ8/eCnB4eLh79uzZZ7ziK77iW19zzTUPfsYznvE399133628iP7hH/7hd377t3/7e17xFV/xra+55poHv+IrvuJbb25uHv+Hf/iH3+G/0OHh4e6f/umf/sxv//Zvf8/h4eHuNddc8+BrrrnmwS/+4i/+2q/zOq/z3pubm8cBnT179lau+h/r6Ojo0uHh4e47vdM7fTbA13/917/P0dHRpcPDw12u+j/hmmuuefCbvdmbfdSHf/iHf/c7vdM7ffaLv/iLvzbAfffdd+vP//zPf/WXfumXvs0//MM//M7Zs2dv5T/ZO77jO37W67zO67w3wJd8yZe8zdmzZ2/lX/A6r/M67/06r/M67w3w9V//9e+zubl5/M3f/M0/+ujo6NLP//zPfzVXXXXVVVddddW/FZWrrrrqqquuuurf7e///u9/+8Ve7MVe+53e6Z0+6zM/8zN/m2f6rd/6re8+c+bMg97pnd7psz/8wz/8uz/4gz/4wfwr3Hfffbd+1md91uu89mu/9nu90zu902e/0zu902e/zuu8znt/1md91uvcd999t/Jf6L777rv1R3/0Rz/nt37rt777xV/8xV/ndV7ndd7rxV7sxV77nd7pnT4b4B/+4R9++7d+67e+57d+67e+m6uuuuq/xDXXXPPg137t136vF3/xF3+dF3uxF3stnum+++679bd+67e++7d/+7e/57777ruV/0Lv+I7v+Fnv9E7v9NkAn/mZn/k6//AP//DbvAhe7MVe7LUAfuu3fuu7ueqqq6666qqr/iOhBz3oQVx11VVXXXXVVf8+11xzzYO/6Zu+6en33XffrR/yIR/yEB7gmmuuefCHf/iHf9eLvdiLvfZv/dZvfffXf/3Xvw//Bi/2Yi/22h/+4R/+Xddcc82D77vvvlt/+7d/+3t+5Ed+5LP5b3TNNdc8+LVf+7Xf653e6Z0+m2e67777bv2t3/qt7/7t3/7t77nvvvtu5ar/UX7iJ37CAG/3dm8nrvpf65prrnnwa7/2a7/XO73TO302D/AjP/Ijn/0P//APv/MP//APv81/sRd7sRd77Q//8A//rmuuuebBAJ/5mZ/5Ov/wD//w27yIvumbvunp11xzzYM/5EM+5CH33Xffrddcc82Dv+mbvunp//AP//A7n/mZn/naXHXVVVddddVV/1aU48ePc9VVV1111VVX/fscHh7uvviLv/hrP+QhD3npf/iHf/ids2fP3sozHR4e7v7DP/zD77z5m7/5Rz/kIQ95aYB/+Id/+B3+lc6ePXvrn/3Zn/3M5ubm8Rd/8Rd/7Rd7sRd7bYB/+Id/+B3+mxweHu7+wz/8w+/81m/91ncfHh7uSuIhD3nIS7/4i7/4a7/SK73S2zz4wQ9+qcPDw0tnz569lav+R3ind3qnzwb40R/90c/hqv9Vrrnmmge/2Zu92Ud9xEd8xPe84zu+42e9+Iu/+GsD3Hfffbf+/M///Fd/1md91uv8wz/8w++cPXv2Vv6LveM7vuNnfcRHfMR3b25uHr/vvvtu/ZIv+ZK3+Yd/+Iff5kX0uZ/7ub/1kIc85KV/5Ed+5LP/9E//9GcAXvEVX/GtX/EVX/Gt/+Ef/uF3/vRP//Snueqqq6666qqr/q0ox48f56qrrrrqqquu+g+hV3zFV3zra6655sG/9Vu/9T08wOHh4e7Zs2ef8Yqv+Ipvfc011zz41ltv/ZuzZ8/eyr/S4eHh7p/+6Z/+DMCLv/iLv/aLv/iLv/brvM7rvPef/dmf/czh4eEu/02Ojo4u/cM//MPv/NZv/db3/MM//MPvALzYi73Yaz/kIQ956dd5ndd579d5ndd5783NzeP/8A//8Dtc9d/qnd7pnT4b4Ed/9Ec/h6v+V3jHd3zHz3qnd3qnz36f93mfr37xF3/x197c3Dx+33333frzP//zX/0N3/AN7/OjP/qjn/MP//APv8N/g2uuuebBX/7lX/5Xr/RKr/TWAD/yIz/y2V/6pV/6NmfPnr2VF9E7vuM7ftbrvM7rvDfAj/7oj37O2bNnbwV43/d936+65pprHvwLv/ALX3Prrbf+NVddddVVV1111b8VetCDHsRVV1111VVXXfXvd8011zz4m77pm55+33333fohH/IhD+H5eMd3fMfPeqd3eqfPvu+++279rM/6rNe57777buXf6MyZMw/63M/93N++5pprHnzffffd+lu/9Vvf/aM/+qOfw/8QZ86cedDrvM7rvPfrvM7rvPc111zzYICzZ88+4+///u9/6x/+4R9+57777rv1H/7hH36bq/5L/cRP/IQB3u7t3k5c9T/WNddc8+DXfu3Xfq93eqd3+mwe4Ed+5Ec+++zZs7f+1m/91vfw3+wd3/EdP+ud3umdPhvgvvvuu/Xrv/7r3+cf/uEffpt/hRd7sRd77c/93M/9LYDP/MzPfJ1/+Id/+G2e6Sd+4icM8HZv93biqquuuuqqq67690APetCDuOqqq6666qqr/mN87ud+7m+92Iu92Gt/1md91uv8/d///W/zXK655poHf/iHf/h3vdiLvdhr33fffbd+yId8yEP4d7jmmmse/Nqv/drv9U7v9E6fDfCjP/qjn/MjP/Ijn83/INdcc82DX+zFXuy1X+d1Xue9XuzFXuy1eYD77rvv1rNnzz7jvvvue/pv/dZvfc8//MM//DZX/af6iZ/4CQO83du9nbjqf5Rrrrnmwa/92q/9Xq/zOq/z3tdcc82Deab77rvv1t/6rd/67h/90R/9HP4HuOaaax784R/+4d/1Yi/2Yq8N8CM/8iOf/aM/+qOfw7/SNddc8+Bv+qZvejrAj/zIj3z2j/7oj34Oz/Q6r/M67/3hH/7h3/Vbv/Vb3/31X//178NVV1111VVXXfXvgR70oAdx1VVXXXXVVVf9x3id13md9/7wD//w7/qHf/iH3/nMz/zM1+b5uOaaax78OZ/zOb91zTXXPPhHf/RHP+dHfuRHPpt/p3d8x3f8rHd6p3f6bID77rvv1q//+q9/n3/4h3/4bf6HOXPmzINe/MVf/HVe7MVe7LWuueaaB7/Yi73Ya/Nc7rvvvlv/4R/+4Xf+4R/+4bfvu+++W//hH/7ht7nqP8xP/MRPGODt3u7txFX/I7zjO77jZ11zzTUPfp3XeZ335pnuu+++W3/rt37ru3/rt37ru8+ePfsM/od4x3d8x896p3d6p88GuO+++279+q//+vf5h3/4h9/m3+BzP/dzf+vFXuzFXvsf/uEffvszP/MzX4cH+KZv+qanX3PNNQ/+zM/8zNf5h3/4h9/mqquuuuqqq67690APetCDuOqqq6666qqr/mNcc801D/6mb/qmp589e/YZH/zBH/xgXoBrrrnmwd/0Td/0dICv//qvf5/f+q3f+m7+na655poHf87nfM5vXXPNNQ++7777bv2t3/qt7/7RH/3Rz+F/sGuuuebBL/ZiL/ZaZ86cefCLv/iLv/aLvdiLvTbP5b777rv1H/7hH3777Nmzz/j7v//73/6Hf/iH3+aqf7Of+ImfMMDbvd3biav+21xzzTUPfu3Xfu33eqd3eqfP5gF+5Ed+5LPPnj37jN/6rd/6bv4Hueaaax784R/+4d/1Yi/2Yq8N8CM/8iOf/aM/+qOfw7/R537u5/7Wi73Yi732fffdd+uHfMiHPIQHeLEXe7HX/tzP/dzfAni7t3s7cdVVV1111VVX/XuhBz3oQVx11VVXXXXVVf9xPvdzP/e3XuzFXuy1v/7rv/59fuu3fuu7eQHe8R3f8bPe6Z3e6bPvu+++Wz/rsz7rde67775b+Xc6c+bMg17ndV7nvd/pnd7pswHuu+++Wz/rsz7rde67775b+V/gmmuueTDAi73Yi73Wi73Yi73267zO67w3z+W+++67FeAf/uEffvsf/uEffucf/uEffvu+++67lateJD/xEz9hgLd7u7cTV/2XuOaaax78Yi/2Yq995syZB734i7/4a7/Yi73Ya/MA9913362/9Vu/9d0/+qM/+jn8D/SO7/iOn/VO7/ROnw1w33333fr1X//17/MP//APv82/0Tu+4zt+1ju90zt9NsBnfuZnvs4//MM//DYP8OEf/uHf9Tqv8zrv/Vu/9Vvf/fVf//Xvw1VXXXXVVVdd9e+FHvSgB3HVVVddddVVV/3HeZ3XeZ33/vAP//Dv+od/+Iff/szP/MzX4YX48A//8O96ndd5nfe+7777bv2QD/mQh/Af5Jprrnnw53zO5/zWNddc8+CzZ88+4zd/8ze/60d/9Ec/h/+Frrnmmge/2Iu92Gu/2Iu92Gtdc801D36xF3ux1+a53Hfffbf+wz/8w2//wz/8w+/cd999t/7DP/zDb3PV8/UTP/ETBni7t3s7cdV/uGuuuebBr/3ar/1eAC/+4i/+2i/2Yi/22jwf9913362/9Vu/9d2//du//T333XffrfwPdM011zz4wz/8w7/rxV7sxV4b4Ld+67e+++u//uvfh3+HF3uxF3vtz/3cz/0tgM/8zM98nX/4h3/4bZ7LN33TNz39mmuuefBnfuZnvs4//MM//DZXXXXVVVddddW/F3rQgx7EVVddddVVV131H+eaa6558Dd90zc9/b777rv1Qz7kQx7CC3HmzJkHfe7nfu5vX3PNNQ/+rd/6re/++q//+vfhP8g111zz4Nd+7dd+r3d6p3f6bIAf+ZEf+ewf/dEf/Rz+l7vmmmsefObMmQdfc801D36d13md93qxF3ux1+a53HfffbeePXv21vvuu+/W3/qt3/qef/iHf/htrrrsJ37iJwzwdm/3duKqf7NrrrnmwWfOnHnwi73Yi73WNddc8+BrrrnmwS/2Yi/22jwf9913361nz5699e///u9/+x/+4R9+5x/+4R9+m//hXud1Xue9P/zDP/y7AO67775bv/7rv/59/uEf/uG3+Xe45pprHvxN3/RNTwf4kR/5kc/+0R/90c/hubzO67zOe334h3/4dwO83du9nbjqqquuuuqqq/4joAc96EFcddVVV1111VX/sT7ncz7nt178xV/8tb/+67/+fX7rt37ru3khrrnmmgd/0zd909MBfuRHfuSzf/RHf/Rz+A/0ju/4jp/1Tu/0Tp8NcN999936W7/1W9/9oz/6o5/D/yHXXHPNg1/sxV7stV/sxV7sta655poHv9iLvdhr81zuu+++W//hH/7ht//hH/7hd+67775b/+Ef/uG3+X/owz/8w78L4Ou//uvfh6teJNdcc82DX+zFXuy1z5w586AXf/EXf+0Xe7EXe21egPvuu+/Wf/iHf/jt++6779Z/+Id/+J1/+Id/+G3+F7nmmmse/OEf/uHf9WIv9mKvDfAP//APv/2Zn/mZr8N/gM/93M/9rRd7sRd77X/4h3/47c/8zM98HZ6PD//wD/+u13md13nv3/qt3/rur//6r38frrrqqquuuuqq/wjoQQ96EFddddVVV1111X+sF3uxF3utz/3cz/3tf/iHf/jtz/zMz3wd/gWv8zqv894f/uEf/l333Xffrd/wDd/wPn//93//2/wHuuaaax784R/+4d/1Yi/2Yq8NcPbs2Wf85m/+5nf99m//9vfcd999t/J/zDXXXPPgF3uxF3vtM2fOPOjFX/zFX/vFXuzFXpvncvbs2Wf8/d///W/dd999t/7DP/zD7/zDP/zDb3PV/3vXXHPNg1/7tV/7vQBe/MVf/LVf7MVe7LV5Pu67775bAX7rt37ruwH+4R/+4Xf+4R/+4bf5X+x1Xud13vvDP/zDvwvgvvvuu/Xrv/7r3+cf/uEffpv/AJ/7uZ/7Wy/2Yi/22vfdd9+tH/IhH/IQXoBv+qZvevo111zz4A/5kA95yH333XcrV1111VVXXXXVfwT0oAc9iKuuuuqqq6666j/WmTNnHvTN3/zNtwJ85md+5uv8wz/8w2/zL3jHd3zHz3qnd3qnzz579uwzPviDP/jB/Ae75pprHvxiL/Zir/06r/M67/ViL/Zirw1w33333foP//APv/1bv/Vb3/MP//APv83/UWfOnHmQJL3Yi73Ya7/Yi73Ya73O67zOe/Nc7rvvvlsl6e///u9/6x/+4R9+5x/+4R9++7777ruVq/5Puuaaax585syZB7/Yi73YawG8+Iu/+Gu/2Iu92GvzfNx33323nj179ta///u//+2zZ88+47d+67e+m/9Drrnmmgd/+Id/+He92Iu92GsD/MM//MNvf+Znfubr8B/kHd/xHT/rnd7pnT4b4DM/8zNf5x/+4R9+m+fjdV7ndd77wz/8w7/rH/7hH377Mz/zM1+Hq6666qqrrrrqPwp60IMexFVXXXXVVVdd9R/vcz/3c3/rxV7sxV77t37rt77767/+69+Hf8E111zz4A//8A//rhd7sRd77fvuu+/Wz/qsz3qd++6771b+E5w5c+ZBr/M6r/Pe7/RO7/TZPNPZs2ef8Zu/+Zvf9aM/+qOfw/8DZ86cedCLv/iLv86LvdiLvdY111zz4Bd7sRd7bZ7Lfffdd+vZs2efcd999z0d4L777rv17NmzzwC47777bgU4e/bsrffdd9+tXPU/1jXXXPPgF3uxF3vtM2fOPOjFX/zFX/vFXuzFXpsX4L777rv1H/7hH377vvvuu/Uf/uEffucf/uEffpv/w17sxV7stT/3cz/3twDuu+++W3/rt37ru3/0R3/0c/gP8mIv9mKv/bmf+7m/BfCZn/mZr/MP//APv80L8OEf/uHf9Tqv8zrv/fVf//Xv81u/9VvfzVVXXXXVVVdd9R8FPehBD+Kqq6666qqrrvqPd8011zz4m77pm54O8CM/8iOf/aM/+qOfw7/gmmuuefDnfM7n/NY111zz4Pvuu+/W3/qt3/ruH/3RH/0c/pNcc801D37t137t93qd13md977mmmseDHDffffd+lu/9Vvf/du//dvfc999993K/xPXXHPNg8+cOfOga6655iGv8zqv814v9mIv9tr33Xffrddcc82DeRGcPXv2GbZ99uzZW++7775bAe67775bz549+wyA++6771aAs2fP3nrffffdylX/Ka655poHv/Zrv/Z7Abz4i7/4a7/Yi73Ya/N83HfffbcC/NZv/dZ3A/zDP/zD7/zDP/zDb/P/xDXXXPPg137t136vd3qnd/psgH/4h3/47a//+q9/n/vuu+9W/oNcc801D/6mb/qmpwP86I/+6Of8yI/8yGfzQvzET/yEAT7kQz7kIffdd9+tXHXVVVddddVV/1HQgx70IK666qqrrrrqqv8cr/M6r/PeH/7hH/5d9913363f8A3f8D5///d//9v8C86cOfOg13md13nvd3qnd/psgB/5kR/57B/90R/9HP4TXXPNNQ9+sRd7sdd6ndd5nfd+sRd7sdcGuO+++279h3/4h9/5rd/6re/+h3/4h9/m/6FrrrnmwWfOnHnQNddc8xCAM2fOPOiaa655MMA111zz4DNnzjz4mmuueTD/Bvfdd9+tAGfPnr0V0H333fd0gH/4h3/4HYD77rvvVoCzZ8/eet99993K/3HXXHPNg3mAM2fOPBjgmmuueTDPdObMmQfxANdcc82DAa655pqHAH6xF3ux1+b5uO+++249e/bsrX//93//22fPnn3GP/zDP/z2fffddyv/D11zzTUPfu3Xfu33eqd3eqfP5pl+5Ed+5LN/9Ed/9HP4D/a5n/u5v/ViL/Zir/0P//APv/2Zn/mZr8ML8Tqv8zrv/eEf/uHf9Vu/9Vvf8/Vf//XvzVVXXXXVVVdd9R8JPehBD+Kqq6666qqrrvrP847v+I6f9U7v9E6fffbs2Wd88Ad/8IN5Eb3jO77jZ73TO73TZwOcPXv2GZ/5mZ/52vfdd9+t/Ce75pprHvyO7/iOn/U6r/M6780z3Xfffbf+1m/91nf/6I/+6Odw1fN15syZB0nSmTNnHnzNNdc8GODMmTMPuuaaax4McM011zwY4MyZMw++5pprHsy/0n333XerJN13331PB7jvvvtuBbjvvvtuPXv27DPuu+++WwHOnj1763333Xcr/wmuueaaB/MAZ86ceTDANddc82Ce6cyZMw/ima655poHAwJ8zTXXPJhnuuaaax5i29dcc82D+Q9y33333XrNNdc8+L777rv1H/7hH377vvvuu/Uf/uEffucf/uEffpuruOaaax78ju/4jp/1Oq/zOu/NM9133323ftZnfdbr3HfffbfyH+xzP/dzf+vFXuzFXvu+++679UM+5EMewr/gcz/3c3/rxV7sxV7767/+69/nt37rt76bq6666qqrrrrqPxJ60IMexFVXXXXVVVdd9Z/nmmuuefCHf/iHf9eLvdiLvfZv/dZvfffXf/3Xvw8vomuuuebBn/M5n/Nb11xzzYPvu+++W3/rt37ru3/0R3/0c/gvcM011zz4tV/7td/rdV7ndd77mmuueTDAfffdd+tv//Zvf89v/dZvffd99913K1f9m11zzTUPBjhz5syDr7nmmgcBOnPmzIOuueaaBwNcc801DwY4c+bMg6+55poH829w33333Qpw9uzZW++7775nAL7vvvtu5QGuueaaB/NM11xzzYMBAT5z5syDAa655poH81/gvvvuu5UHOHv27K0A9913360803333XcrD3D27NlnANx3331PB/QP//APv81Vz3LNNdc8+LVf+7Xf63Ve53Xe+5prrnkwz3Tffffd+vVf//Xv8w//8A+/zX+Cd3zHd/ysd3qnd/psgM/8zM98nX/4h3/4bf4FP/ETP2GAD/mQD3nIfffddytXXXXVVVddddV/JPSgBz2Iq6666qqrrrrqP9c111zz4G/6pm96OsCP/MiPfPaP/uiPfg4vomuuuebBr/3ar/1e7/RO7/TZAD/yIz/y2T/6oz/6OfwXueaaax78Yi/2Yq/9Oq/zOu/1Yi/2Yq8NcN999936D//wD7/9W7/1W9/zD//wD7/NVf/prrnmmgfb9jXXXPMQgGuuuebBAC/2Yi/2WgDXXHPNgwHOnDnz4GuuuebB/Ce47777buUBzp49eyvAfffddyvPdN99993KM509e/YZgAHdd999t/JM991339Ml6b777ruVq/7Dvc7rvM57v9iLvdhrvc7rvM5780z33Xffrb/1W7/13T/6oz/6OfwnerEXe7HX/tzP/dzfAvjMz/zM1/mHf/iH3+Zf8Dqv8zrv/eEf/uHf9Vu/9Vvf/fVf//Xvw1VXXXXVVVdd9R8NPehBD+Kqq6666qqrrvrP9zqv8zrv/eEf/uHfdd9999369V//9e/zD//wD7/Nv8I7vuM7ftY7vdM7fTbAfffdd+tnfdZnvc599913K/+Frrnmmge/4zu+42e9zuu8znvzTPfdd9+tP/qjP/o5v/Vbv/XdXPU/xjXXXPNgnunMmTMPvuaaax4E6MyZMw/iAc6ePfsMnum+++67FTCgs2fP3gpw33333cpV/+Ndc801D37t137t93qnd3qnz+YBfuRHfuSz/+Ef/uF3/uEf/uG3+U/2Yi/2Yq/9uZ/7ub8F8CM/8iOf/aM/+qOfw4vgcz/3c3/rxV7sxV7767/+69/nt37rt76bq6666qqrrrrqPxp60IMexFVXXXXVVVdd9V/jHd/xHT/rnd7pnT77vvvuu/VDPuRDHsK/0jXXXPPgz/mcz/mta6655sFnz559xm/+5m9+14/+6I9+Dv/Frrnmmge/9mu/9nu90zu902fzTPfdd9+tv/Vbv/Xdv/3bv/099913361cddVV/+ne8R3f8bNe/MVf/LVf7MVe7LV5pvvuu+/W3/qt3/ruH/3RH/0c/ou84zu+42e90zu902ffd999t/7DP/zDb3/913/9+/AieLEXe7HX/tzP/dzf+od/+Iff/szP/MzX4aqrrrrqqquu+s9AOX78OFddddVVV1111X+Ns2fPPuMhD3nISz/kIQ956WuuuebBf/qnf/oz/CscHh7u/tmf/dnPHB4e7r7iK77iW7/4i7/4awP8wz/8w+/wX+jw8HD3H/7hH37nt3/7t7/n1ltv/ZvNzc3jD3nIQ176xV/8xV/7FV/xFd/6IQ95yEsfHh5eOnv27K1cddVV/6GuueaaB7/Zm73ZR33u537ub7/4i7/4a19zzTUPvu+++279+Z//+a/+hm/4hvf50R/90c/5h3/4h9/hv8CLvdiLvfbnfu7n/tYrvdIrvTXAz//8z3/1d33Xd30ML4JrrrnmwV/xFV/xVwA/+qM/+jm33nrrX3PVVVddddVVV/1nQA960IO46qqrrrrqqqv+61xzzTUP/qZv+qanA/zoj/7o5/zIj/zIZ/Nv8I7v+I6f9U7v9E6fDXDffffd+lmf9Vmvc999993Kf5Nrrrnmwe/4ju/4Wa/zOq/z3jzTfffdd+uP/uiPfs5v/dZvfTdXXXXVv9k111zz4Nd+7dd+r9d5ndd572uuuebBPNN9991362/91m9994/+6I9+Dv/F3vEd3/Gz3umd3umzAe67775bP+uzPut17rvvvlt5EX3u537ub73Yi73Ya//DP/zDb3/mZ37m63DVVVddddVVV/1nQQ960IO46qqrrrrqqqv+a73O67zOe3/4h3/4d509e/YZX/d1X/fe//AP//Db/Btcc801D/6cz/mc37rmmmsefN99993627/929/zIz/yI5/Nf6Nrrrnmwa/92q/9Xu/0Tu/02TzTfffdd+tv/dZvffeP/uiPfg5XXXXVi+yaa6558Gu/9mu/1zu90zt9Ns9033333fpbv/Vb3/3bv/3b33Pffffdyn+xa6655sEf/uEf/l0v9mIv9toAP/IjP/LZP/qjP/o5/Ct87ud+7m+92Iu92Gvfd999t37Ih3zIQ7jqqquuuuqqq/4zoQc96EFcddVVV1111VX/9d7xHd/xs97pnd7ps++7775bP+RDPuQh/Btdc801D37t137t93qnd3qnzwb4kR/5kc/+0R/90c/hv9mZM2ce9OIv/uKv8zqv8zrv9WIv9mKvDXD27Nln/P3f//1v/dZv/db3/MM//MNvc9VVVz2Pa6655sGv/dqv/V6v8zqv897XXHPNg3mm++6779bf+q3f+u4f/dEf/Rz+m7zO67zOe3/4h3/4dwHcd999t37913/9+/zDP/zDb/Ov8I7v+I6f9U7v9E6fDfCZn/mZr/MP//APv81VV1111VVXXfWfCT3oQQ/iqquuuuqqq676r3fNNdc8+MM+7MO+68Vf/MVf+7d+67e+++u//uvfh3+Hd3zHd/ysd3qnd/psgPvuu+/Wz/qsz3qd++6771b+B3ixF3ux136d13md93qd13md9+aZ7rvvvlvPnj1763333feM3/qt3/ruf/iHf/htrrrq/7Frrrnmwe/4ju/4Wa/zOq/z3jzTfffdd+tv/dZvffdv//Zv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+V/kmmuuefCHf/iHf9eLvdiLvTbAP/zDP/z2Z37mZ74O/wE+93M/97de7MVe7LXvu+++Wz/kQz7kIVx11VVXXXXVVf9d0IMe9CCuuuqqq6666qr/Oc6cOfOgj/iIj/juF3uxF3vt++6779bP+qzPep377rvvVv4DnTlz5kGv8zqv897v9E7v9Nk809mzZ5/xIz/yI5/9W7/1W9/N/yHXXHPNg1/sxV7stV7sxV7sta+55poHv9iLvdhr8wD33XffrQD/8A//8Nv/8A//8Du/9Vu/9d1c9f/GNddc8+AzZ848+MVe7MVe65prrnnw67zO67w3L8B9991362/91m99N8A//MM//M4//MM//Db/i73Yi73Ya3/u537ub/FMP/IjP/LZP/qjP/o5/Ad4x3d8x896p3d6p88G+MzP/MzX+Yd/+Iff5qqrrrrqqquu+u+CHvSgB3HVVVddddVVV/3P803f9E1Pv+aaax5833333frbv/3b3/MjP/Ijn81/sGuuuebBr/3ar/1e7/RO7/TZPNN9991362/91m9994/+6I9+Dv8HXXPNNQ9+sRd7sdd+sRd7sde65pprHvxiL/Zir81zue+++279h3/4h9/+h3/4h9+57777bv2Hf/iH3+aq//WuueaaB585c+bBL/ZiL/ZaL/7iL/7aL/ZiL/bavAD33Xffrb/1W7/13QD/8A//8Dv/8A//8Nv8H/KO7/iOn/VO7/ROnw3wD//wD7/99V//9e9z33333cp/gBd7sRd77c/93M/9LYDP/MzPfJ1/+Id/+G2uuuqqq6666qr/TuhBD3oQV1111VVXXXXV/zzXXHPNg1/7tV/7vd7pnd7pswF+5Ed+5LN/9Ed/9HP4T3DNNdc8+MVe7MVe63Ve53Xe+8Ve7MVeG+C+++679bd/+7e/57d+67e++7777ruV/6OuueaaB585c+bBL/ZiL/ZaL/7iL/7aL/ZiL/baPB/33XffrQBnz569FdB99933dIB/+Id/+B2A++6771aAs2fP3nrffffdylX/ra655poHnzlz5sEv9mIv9lov/uIv/tov9mIv9to8H/fdd9+tAL/1W7/13QD/8A//8Dv/8A//8Nv8H3XNNdc8+MM//MO/68Ve7MVeG+BHfuRHPvtHf/RHP4f/INdcc82Dv+mbvunpAD/yIz/y2T/6oz/6OVx11VVXXXXVVf/d0IMe9CCuuuqqq6666qr/ud7xHd/xs97pnd7pswHuu+++Wz/rsz7rde67775b+U/yOq/zOu/9Oq/zOu/1Yi/2Yq8NcN999936D//wD7/9W7/1W9/zD//wD7/N/3HXXHPNgwFe7MVe7LVf7MVe7LVe7MVe7LWvueaaB/OvdN99990qSffdd9/T77vvvlsB7rvvvlvPnj37DID77rvvVoCzZ8/eet99993KVf8m11xzzYMBXuzFXuy1z5w586AXf/EXf+0Xe7EXe22ej/vuu+/Ws2fP3vr3f//3v3327Nln3Hfffbf+wz/8w2/z/8A7vuM7ftaLv/iLv/aLvdiLvTbAfffdd+vXf/3Xv88//MM//Db/gT73cz/3t17sxV7stf/hH/7htz/zMz/zdbjqqquuuuqqq/4nQA960IO46qqrrrrqqqv+Zztz5syDPvdzP/e3r7nmmgffd999t/7Wb/3Wd//oj/7o5/Cf6Jprrnnwa7/2a7/XO73TO302z3Tffffd+qM/+qOf81u/9Vvfzf8z11xzzYMBzpw58+BrrrnmQYDOnDnzoGuuuebBANdcc82DAc6cOfPga6655sH8K9133323Apw9e/bW++6771ZA991339PPnj37DID77rvvVoCzZ8/eet99993K/zLXXHPNg3mmM2fOPJhnuuaaax4McObMmQfxANdcc82DAV1zzTUP4pnOnDnzYEk6c+bMg/gX3HfffbeePXv21r//+7//7bNnzz7jt37rt76b/2euueaaB7/2a7/2e73TO73TZ/NM9913362/9Vu/9d0/+qM/+jn8B3vHd3zHz3qnd3qnz77vvvtu/ZAP+ZCHcNVVV1111VVX/U+BHvSgB3HVVVddddVVV/3Pd8011zz4tV/7td/rnd7pnT77vvvuu/W3f/u3v+dHfuRHPpv/ZNdcc82DX/u1X/u93umd3umzeab77rvv1t/6rd/67h/90R/9HK56vq655poH2/Y111zzkGuuuebBAGfOnHnQNddc82CAa6655sEAZ86cefA111zzYP6V7rvvvlsBzp49+4z77rvv6QD33XffrWfPnn0GwH333XcrwNmzZ2+97777buVFdM011zyYBzhz5syDAa655poHA5w5c+ZBPMA111zzYIBrrrnmwYAAnzlz5sEA11xzzYP5T3bffffdCnD27Nlb//7v//63/+Ef/uF3/uEf/uG3+X/sxV7sxV77dV7ndd7rdV7ndd6bZ7rvvvtu/a3f+q3v/tEf/dHP4T/Bi73Yi732537u5/4WwGd+5me+zj/8wz/8NlddddVVV1111f8U6EEPehBXXXXVVVddddX/Hu/4ju/4We/0Tu/02QD/8A//8Ntf//Vf/z733Xffrfwnu+aaax78Yi/2Yq/9ju/4jp91zTXXPBjgvvvuu/W3fuu3vvu3f/u3v+e+++67lav+za655poHA5w5c+bB11xzzYMBnzlz5sHXXHPNgwGuueaaBwOcOXPmwddcc82D+Vc6e/bsM2z77Nmzt/JM11xzzUNs+5prrnkw/8nuu+++W3mAs2fP3gpw33333Qpw33333coDnD179hmA77vvvmfwTGfPnr3Vts+ePfsMrnoO11xzzYNf+7Vf+73e6Z3e6bN5gB/5kR/57N/+7d/+nvvuu+9W/pO84zu+42e90zu902cDfOZnfubr/MM//MNvc9VVV1111VVX/U+CHvSgB3HVVVddddVVV/3vcs011zz4cz7nc37rmmuuefB9991362d91me9zn333Xcr/0Ve53Ve571f53Ve571e7MVe7LUBzp49+4y///u//63f+q3f+p5/+Id/+G2u+k93zTXXPBjgzJkzD7rmmmseAnDmzJkHXXPNNQ8GuOaaax4McObMmQdfc801D+ZFdN99993KA5w9e/ZWgPvuu+9Wnum+++67lWc6e/bsMwDuu+++WwEDOnv27K0A9913361c9Z/qmmuuefA7vuM7ftbrvM7rvDfPdN999936W7/1W9/9oz/6o5/Df6JrrrnmwR/+4R/+XS/2Yi/22gA/8iM/8tk/+qM/+jlcddVVV1111VX/06AHPehBXHXVVVddddVV//ucOXPmQZ/7uZ/729dcc82D77vvvlt/67d+67t/9Ed/9HP4L3TNNdc8+B3f8R0/63Ve53Xem2e67777bv3RH/3Rz/mt3/qt7+aq/zHOnDnzIEkCOHPmzIMB7rvvvqdL0n333XcrV/2vcc011zz4tV/7td/rdV7ndd77mmuueTDP9CM/8iOf/Q//8A+/8w//8A+/zX+yF3uxF3vtz/3cz/0tgPvuu+/Wr//6r3+ff/iHf/htrrrqqquuuuqq/4nQgx70IK666qqrrrrqqv+drrnmmge/9mu/9nu90zu902cD/OiP/ujn/MiP/Mhn81/szJkzD3qd13md936nd3qnz+aZzp49+4zf/M3f/K4f/dEf/Ryuuuqqf7drrrnmwe/4ju/4Wa/zOq/z3jzTfffdd+tv/dZvffeP/uiPfg7/Rd7xHd/xs97pnd7pswH+4R/+4bc/8zM/83W46qqrrrrqqqv+J0MPetCDuOqqq6666qqr/nd7x3d8x896p3d6p88GuO+++279rM/6rNe57777buW/2DXXXPPgF3uxF3vtd3zHd/ysa6655sEA9913362/9Vu/9d2//du//T333XffrVx11VUvsmuuuebBr/3ar/1er/M6r/Pe11xzzYN5pt/6rd/67n/4h3/4nd/6rd/6bv6LXHPNNQ/+8A//8O96sRd7sdcG+JEf+ZHP/tEf/dHP4aqrrrrqqquu+p8OPehBD+Kqq6666qqrrvrf75prrnnw53zO5/zWNddc8+D77rvv1t/6rd/67h/90R/9HP6bvM7rvM57vc7rvM57v9iLvdhrA9x33323/sM//MPv/NZv/dZ3/8M//MNvc9VVV71A11xzzYNf+7Vf+73e6Z3e6bN5pvvuu+/W3/qt3/ruH/3RH/0c/ou9zuu8znt/+Id/+HcB3Hfffbd+/dd//fv8wz/8w29z1VVXXXXVVVf9b4Ae9KAHcdVVV1111VVX/d9w5syZB73O67zOe7/TO73TZwP8yI/8yGf/6I/+6Ofw3+iaa6558Du+4zt+1uu8zuu8N89033333fqjP/qjn/Nbv/Vb381VV1112TXXXPPg137t136v13md13nva6655sE803333Xfrj/7oj37Ob/3Wb303/8WuueaaB3/4h3/4d73Yi73YawP81m/91nd//dd//ftw1VVXXXXVVVf9b4Ie9KAHcdVVV1111VVX/d/yju/4jp/1Tu/0Tp8NcPbs2Wd85md+5mvfd999t/Lf6Jprrnnwa7/2a7/XO73TO302D3D27Nln/P3f//1v/cM//MPv3Hfffbf+wz/8w29z1VX/j1xzzTUPfu3Xfu33eqd3eqfP5pnuu+++W3/rt37ru3/rt37ru8+ePfsM/hu82Iu92Gt/7ud+7m8B3Hfffbd+/dd//fv8wz/8w29z1VVXXXXVVVf9b4Me9KAHcdVVV1111VVX/d9zzTXXPPhzPudzfuuaa6558H333Xfrj/7oj37Ob/3Wb303/82uueaaB585c+bB7/RO7/RZL/ZiL/baPJf77rvv1n/4h3/4nX/4h3/47fvuu+/Wf/iHf/htrrrq/5hrrrnmwa/92q/9Xq/zOq/z3tdcc82Deab77rvv1h/90R/9nN/6rd/6bv4bveM7vuNnvdM7vdNnA/zDP/zDb3/913/9+9x33323ctVVV1111VVX/W+EHvSgB3HVVVddddVVV/3fdM011zz4tV/7td/rnd7pnT77vvvuu/W3fuu3vvtHf/RHP4f/Ia655poH2/aLv/iLv86LvdiLvdbrvM7rvDfP5b777rv1H/7hH377H/7hH37nvvvuu/Uf/uEffpurrvpf6pprrnnwa7/2a7/XO73TO302z3Tffffd+lu/9Vvf/Vu/9Vvfffbs2Wfw3+iaa6558Id/+Id/14u92Iu9NsCP/MiPfPaP/uiPfg5XXXXVVVddddX/ZuhBD3oQV1111VVXXXXV/11nzpx50Ou8zuu89zu90zt9NsA//MM//PZnfuZnvg7/Q11zzTUPfrEXe7HXerEXe7HXfp3XeZ335rncd999t/7DP/zDb//DP/zD79x33323/sM//MNvc9VV/0Ndc801D36xF3ux1z5z5syDXud1Xue9r7nmmgfzTPfdd9+tv/Vbv/XdP/qjP/o5/A/wYi/2Yq/9uZ/7ub8FcN9999369V//9e/zD//wD7/NVVddddVVV131vx160IMexFVXXXXVVVdd9X/fi73Yi732h3/4h3/XNddc8+CzZ88+4zM/8zNf+7777ruV/+GuueaaB7/Yi73Ya7/Yi73Ya11zzTUPfrEXe7HX5gHuu+++W8+ePXvr3//93//2P/zDP/zOP/zDP/w2V1313+Caa6558JkzZx78Yi/2Yq/14i/+4q/9Yi/2Yq/Nc7nvvvtu/a3f+q3v/q3f+q3vPnv27DP4H+Id3/EdP+ud3umdPhvgH/7hH377Mz/zM1+Hq6666qqrrrrq/wr0oAc9iKuuuuqqq6666v+Ha6655sGf8zmf81vXXHPNg++7775b/+Ef/uG3f+u3fut7/uEf/uG3+V/immuuefCLvdiLvfaLvdiLvdY111zz4Bd7sRd7bR7g7Nmzz7jvvvueft999936W7/1W9/zD//wD7/NVVf9B7vmmmsefObMmQe/2Iu92Gu9+Iu/+Gu/2Iu92GvzfNx33323nj179ta///u//+3f/u3f/p777rvvVv4Hueaaax784R/+4d/1Yi/2Yq8N8CM/8iOf/aM/+qOfw1VXXXXVVVdd9X8JetCDHsRVV1111VVXXfX/xzXXXPPgF3uxF3utD//wD/9unum+++679eu//uvf5x/+4R9+m/9lrrnmmge/2Iu92Gu/2Iu92Gtdc801D36xF3ux1+YB7rvvvlsl6e///u9/6x/+4R9+57d+67e+m6uu+le45pprHnzmzJkHv9iLvdhrvfiLv/hrv9iLvdhr83zcd999t549e/bWv//7v//tf/iHf/idf/iHf/ht/gd7x3d8x896p3d6p88GuO+++279+q//+vf5h3/4h9/mqquuuuqqq676vwY96EEP4qqrrrrqqquu+v/nmmuuefBrv/Zrv9c7vdM7fTbPdN999936oz/6o5/zW7/1W9/N/1Jnzpx50DXXXPOQF3uxF3utF3/xF3/tF3uxF3ttnst999136z/8wz/8zj/8wz/89m/91m99N1dd9UzXXHPNg8+cOfPgF3uxF3utF3/xF3/tF3uxF3ttno/77rvv1rNnz97693//97999uzZZ/zWb/3Wd/O/xDXXXPPgD//wD/+uF3uxF3ttgN/6rd/67q//+q9/H6666qqrrrrqqv+r0IMe9CCuuuqqq6666qr/v6655poHv/Zrv/Z7vc7rvM57X3PNNQ8GuO+++279rd/6re/+0R/90c/hf7lrrrnmwWfOnHnQi73Yi732i7/4i7/2i73Yi702z+W+++679R/+4R9++x/+4R9+57777rv1H/7hH36bq/7Pu+aaax585syZB7/Yi73Ya11zzTUPfp3XeZ335vm47777bgX4rd/6re8+e/bsM37rt37ru/lf6sVe7MVe+3M/93N/C+C+++679eu//uvf5x/+4R9+m6uuuuqqq6666v8y9KAHPYirrrrqqquuuuqqM2fOPOjFX/zFX+d1Xud13uvFXuzFXhvg7Nmzz/jN3/zN7/rt3/7t77nvvvtu5f+Aa6655sEAL/ZiL/Zar/M6r/PeL/ZiL/baPJf77rvv1n/4h3/47X/4h3/4nfvuu+/Wf/iHf/htrvpf7ZprrnkwwGu/9mu/F8CLv/iLv/aLvdiLvTbP5b777rsV4Ld+67e+G+Af/uEffucf/uEffpv/A97xHd/xs97pnd7pswH+4R/+4be//uu//n3uu+++W7nqqquuuuqqq/6vQw960IO46qqrrrrqqquueqDXeZ3Xee/XeZ3Xea8Xe7EXe22A++6779Z/+Id/+O0f/dEf/Zz77rvvVv6Pueaaax78Yi/2Yq/9Yi/2Yq/1Oq/zOu/Nc7nvvvtuBTh79uytAPfdd98zAP/DP/zD7wDcd999twKcPXv21vvuu+9Wrvpvd8011zz4tV/7td8L4MVf/MVf+8Ve7MVem+fjvvvuu/W3fuu3vhvgH/7hH37nH/7hH36b/0OuueaaB7/2a7/2e73TO73TZ/NMP/IjP/LZP/qjP/o5XHXVVVddddVV/1+gBz3oQVx11VVXXXXVVVc9P2fOnHnQO73TO33267zO67w3z/Rbv/Vb3/Nbv/Vb3/0P//APv83/Uddcc82DX+zFXuy1X+zFXuy1XuzFXuy1Aa655poH8yK67777bgU4e/bsM+67776nA9x33323nj179hkA9913361nz5699b777ruVq/7drrnmmge/9mu/9nsBvPiLv/hrv9iLvdhr83zcd999t/7Wb/3WdwP8wz/8w+/8wz/8w2/zf9Q111zz4Hd8x3f87Nd5ndd5L57pH/7hH377R37kRz7nH/7hH36bq6666qqrrrrq/xP0oAc9iKuuuuqqq6666qoX5pprrnnwa7/2a7/XO73TO302z3Tffffd+qM/+qOf81u/9Vvfzf9x11xzzYMBzpw582CAa6655kFnzpx58DXXXPNggGuuuebBAGfOnHnwNddc82D+lc6ePfsM2z579uyt9913360A9913361nz559xn333XcrwNmzZ2+97777buV/uWuuuebBPNOZM2cezDNdc801DwY4c+bMg3ima6655iGAr7nmmgfzTNdcc81DbPuaa655MC/Efffdd+tv/dZvfTfAP/zDP/zOP/zDP/w2/8ddc801D37t137t93qd13md977mmmsezDP91m/91nf/6I/+6Ofcd999t3LVVVddddVVV/1/hB70oAdx1VVXXXXVVVdd9aK45pprHvzar/3a7/VO7/ROn80z3Xfffbf+9m//9vf8yI/8yGdz1WXXXHPNgwHOnDnzoGuuueYhAGfOnHnQNddc82CAa6655sFnzpx58DXXXPNg/pXuu+++WwHOnj17K8B99933DMD/8A//8DsA9913360AZ8+evfW+++67lX+na6655sE805kzZx4McM011zwY4MyZMw/iAa655pqHAL7mmmsezDNdc801D7Hta6655sH8J7nvvvtu/Yd/+Iffvu+++279h3/4h9/5h3/4h9/m/5Frrrnmwa/92q/9Xu/0Tu/02TzTfffdd+tv/dZvffeP/uiPfg5XXXXVVVddddX/d+hBD3oQV1111VVXXXXVVf8a11xzzYNf+7Vf+71e53Ve572vueaaBwPcd999t/7Wb/3Wd//oj/7o53DVv8qZM2ceJElnzpx58DXXXPNggBd7sRd7LYBrrrnmwQBnzpx58DXXXPNg/pXuu+++WwHOnj37jPvuu+/pAPfdd9+t11xzzYMBXXPNNQ/imc6cOfNgSTpz5syD+E9y33333coDnD179laA++6771aA++6771ae6ezZs7cCArjvvvtuBbjvvvueLkn33Xffrfw/92Iv9mKv/Tqv8zrv9Tqv8zrvzTPdd999t/7Wb/3Wd//oj/7o53DVVVddddVVV111BXrQgx7EVVddddVVV1111b/FNddc8+AXe7EXe+3XeZ3Xea8Xe7EXe22A++6779bf+q3f+u7f/u3f/p777rvvVq76D3XNNdc8GODMmTMPvuaaax4M+MyZMw++5pprHgxwzTXXPBjgzJkzD77mmmsezL/TfffddyvPdPbs2VsB7rvvvlsB7rvvvlt5gLNnz94K6L777ruVZ7rvvvueLkn33XffrVz173bNNdc8+LVf+7Xf653e6Z0+mwf4kR/5kc/+7d/+7e+57777buWqq6666qqrrrrqOaEHPehBXHXVVVddddVVV/17XXPNNQ/+8A//8O96sRd7sdcGOHv27DP+/u///rd+67d+63v+4R/+4be56r/FNddc82CAM2fOPOiaa655CMCZM2cedPbs2WcAvu+++57BM509e/ZW2z579uwzuOp/lGuuuebBr/3ar/1e7/RO7/TZPNN9991362/91m9994/+6I9+DlddddVVV1111VUvGHrQgx7EVVddddVVV1111X+Ua6655sHv+I7v+Fmv8zqv89480z/8wz/89o/8yI98zj/8wz/8NlddddWL7B3f8R0/63Ve53Xe+5prrnkwz3Tffffd+qM/+qOf81u/9VvfzVVXXXXVVVddddW/DD3oQQ/iqquuuuqqq6666j/amTNnHvQ6r/M67/1O7/ROn80znT179hk/8iM/8tm/9Vu/9d1cddVVz9c111zz4Nd+7dd+r3d6p3f6bJ7pvvvuu/W3fuu3vvu3f/u3v+e+++67lauuuuqqq6666qoXHXrQgx7EVVddddVVV1111X+Wa6655sGv/dqv/V6v8zqv897XXHPNgwHuu+++W3/rt37ru3/0R3/0c7jqqqsuu+aaax78ju/4jp/1Oq/zOu/NM9133323/tZv/dZ3/+iP/ujncNVVV1111VVXXfVvgx70oAdx1VVXXXXVVVdd9Z/tmmuuefCLvdiLvdY7vuM7fvY111zzYID77rvv1n/4h3/4nX/4h3/47fvuu+/Wf/iHf/htrrrq/5Frrrnmwa/92q/9Xq/zOq/z3tdcc82DeaYf+ZEf+ezf/u3f/p777rvvVq666qqrrrrqqqv+fdCDHvQgrrrqqquuuuqqq/4rvc7rvM57v87rvM57vdiLvdhr8wD33Xffrf/wD//w2//wD//wO/fdd9+t//AP//DbXHXV/0HXXHPNg1/7tV/7vd7pnd7ps3mm++6779bf+q3f+u4f/dEf/Ryuuuqqq6666qqr/uOgBz3oQVx11VVXXXXVVVf9d7jmmmse/GIv9mKv9WIv9mKvfc011zz4xV7sxV6bB7jvvvtu/Yd/+Iff/od/+Iffue+++279h3/4h9/mqqv+F3vHd3zHz3qd13md977mmmsezDPdd999t/7oj/7o5/zWb/3Wd3PVVVddddVVV131Hw896EEP4qqrrrrqqquuuup/gmuuuebBL/ZiL/baL/ZiL/Za11xzzYNf7MVe7LV5gPvuu+/Ws2fP3vr3f//3v/0P//APv/MP//APv81VV/0Pd8011zz4tV/7td/rnd7pnT6bZ7rvvvtu/a3f+q3v/u3f/u3vue+++27lqquuuuqqq6666j8PetCDHsRVV1111VVXXXXV/0TXXHPNg1/sxV7stV/sxV7sta655poHv9iLvdhr8wBnz559xn333ff0v//7v//tf/iHf/idf/iHf/htrrrqv9E111zz4Nd+7dd+L4AXf/EXf+0Xe7EXe20e4L777rv1t37rt777R3/0Rz+Hq6666qqrrrrqqv8a6EEPehBXXXXVVVddddVV/xtcc801D36xF3ux136xF3ux17rmmmse/GIv9mKvzQPcd999t549e/YZf//3f/9b//AP//A7//AP//DbXHXVf5JrrrnmwS/2Yi/22mfOnHnQi7/4i7/2i73Yi702z8d9991362/91m999z/8wz/8zj/8wz/8NlddddVVV1111VX/tdCDHvQgrrrqqquuuuqqq/43OnPmzINe/MVf/HVe7MVe7LWuueaaB7/Yi73Ya/MA9913361nz5699R/+4R9+5+///u9/+x/+4R9+m6uu+je45pprHnzmzJkHv9iLvdhrvfiLv/hrv9iLvdhr83zcd999t/7DP/zDb9933323/sM//MPv/MM//MNvc9VVV1111VVXXfXfCz3oQQ/iqquuuuqqq6666v+Ca6655sEv9mIv9lov9mIv9trXXHPNg1/sxV7stXmA++6779azZ8/e+vd///e//Q//8A+/8w//8A+/zVVXPR/XXHPNg1/7tV/7vQDe6Z3e6bN5Pu67775bz549e+vf//3f//Y//MM//M4//MM//DZXXXXVVVddddVV//OgBz3oQVx11VVXXXXVVVf9X3TNNdc8+MVe7MVe+8Ve7MVe65prrnnwi73Yi702D3Dffffdevbs2Vv//u///rf/4R/+4Xf+4R/+4be56v+da6655sGv/dqv/V4AL/7iL/7aL/ZiL/baPB/33Xffrb/1W7/13QA/+qM/+jlcddVVV1111VVX/e+AHvSgB3HVVVddddVVV131/8E111zz4Bd7sRd77Rd7sRd7rWuuuebBL/ZiL/baPMDZs2efcd999z397//+73/7H/7hH37nH/7hH36bq/5Pueaaax585syZB7/Yi73Ya734i7/4a7/Yi73Ya/N83Hfffbf+1m/91ncD/MM//MPv/MM//MNvc9VVV1111VVXXfW/E3rQgx7EVVddddVVV1111f9H11xzzYNf7MVe7LVf7MVe7LWuueaaB7/Yi73Ya/MA9913361nz559xt///d//1tmzZ59x33333Xr27Nlb77vvvlu56n+8a6655sFnzpx58Iu92Iu91ou/+Iu/9ou92Iu9Ns/Hfffdd+s//MM//PZ999136z/8wz/8zj/8wz/8NlddddVVV1111VX/d6AHPehBXHXVVVddddVVV10FZ86cedCLv/iLv86LvdiLvdY111zz4Bd7sRd7bV6A++6771ae6ezZs7fed999zwD8D//wD78DcN99990KcPbs2Vvvu+++W7nqP90111zz4Nd+7dd+L4AXf/EXf50Xe7EXey2ey3333Xfr2bNnb/37v//73/6Hf/iH3/mHf/iH3+aqq6666qqrrrrq/zb0oAc9iKuuuuqqq6666qqrntc111zz4Bd7sRd7rRd7sRd7bYBrrrnmwWfOnHnwNddc82D+le67775bAc6ePfuM++677+kA9913361nz559xn333XcrwNmzZ2+97777buWqZ7nmmmsezDOdOXPmwQDXXHPNgwHOnDnzIIAXf/EXf50Xe7EXey2ej/vuu+/W3/qt3/pugB/90R/9HK666qqrrrrqqqv+/0EPetCDuOqqq6666qqrrrrqX+eaa655MMCZM2ceDHDNNdc8CNCLvdiLvRbANddc82CAM2fOPPiaa655MP8K9913362SdN999z39vvvuuxXgvvvuu/Xs2bPPALjvvvtuBfiHf/iH3+Z/mGuuuebBPNOZM2ceDHDNNdc8GODMmTMP4pmuueaaBwNcc801D+YKnTlz5kEA11xzzYN5Ed133323XnPNNQ8GuO+++279rd/6re8G+Id/+Iff/od/+Iff4aqrrrrqqquuuuoq9KAHPYirrrrqqquuuuqqq/5zXXPNNQ8GOHPmzIOuueaahwCcOXPmQddcc82Dr7nmmgcDnDlz5sHXXHPNg/lXuu+++24FOHv27K333XffrYD+4R/+4bcB7rvvvlsBzp49e+t99913K8/lmmuueTDPdObMmQcDXHPNNQ8GOHPmzIN4gGuuuebBANdcc82DAZ05c+ZBANdcc82D+U9y33333coznT179laA++6771aA++6771aAf/iHf/jtf/iHf/gdrrrqqquuuuqqq656ftCDHvQgrrrqqquuuuqqq676n+Oaa655sG1fc801D7nmmmseDHDmzJkHXXPNNQ8GuOaaax585syZB19zzTUP5l/pvvvuu/Waa655MP9J7rvvvlt5prNnz94KcN99990KcN99993KM509e/YZAPfdd9+tXOGzZ88+A+C+++67lauuuuqqq6666qqr/qOgBz3oQVx11VVXXXXVVVdd9b/XNddc82CAM2fOPPiaa655MOAXe7EXe22Aa6655sEAZ86cefA111zzYJ7LfffddyvPdPbs2VsB7rvvvlt5pvvuu+9Wnuns2bPPALjvvvtuBXz27NlnANx33323ctVVV1111VVXXXXV/1ToQQ96EFddddVVV1111VVX/f9xzTXXPPi+++67lauuuuqqq6666qqr/j9AD3rQg7jqqquuuuqqq6666qqrrrrqqquuuuqqq/5PonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwL/cq4l6VbmSgAAAABJRU5ErkJggg==) + diff --git a/docs/kcl/types/AxisOrEdgeReference.md b/docs/kcl/types/Axis2dOrEdgeReference.md similarity index 50% rename from docs/kcl/types/AxisOrEdgeReference.md rename to docs/kcl/types/Axis2dOrEdgeReference.md index ae12fc156..4b27abd56 100644 --- a/docs/kcl/types/AxisOrEdgeReference.md +++ b/docs/kcl/types/Axis2dOrEdgeReference.md @@ -1,19 +1,19 @@ --- -title: "AxisOrEdgeReference" -excerpt: "Axis or tagged edge." +title: "Axis2dOrEdgeReference" +excerpt: "A 2D axis or tagged edge." layout: manual --- -Axis or tagged edge. +A 2D axis or tagged edge. **This schema accepts any of the following:** -Axis and origin. +2D axis and origin. -[`AxisAndOrigin`](/docs/kcl/types/AxisAndOrigin) +[`AxisAndOrigin2d`](/docs/kcl/types/AxisAndOrigin2d) diff --git a/docs/kcl/types/Axis3dOrEdgeReference.md b/docs/kcl/types/Axis3dOrEdgeReference.md new file mode 100644 index 000000000..0cfa0c744 --- /dev/null +++ b/docs/kcl/types/Axis3dOrEdgeReference.md @@ -0,0 +1,42 @@ +--- +title: "Axis3dOrEdgeReference" +excerpt: "A 3D axis or tagged edge." +layout: manual +--- + +A 3D axis or tagged edge. + + + + +**This schema accepts any of the following:** + +3D axis and origin. + +[`AxisAndOrigin3d`](/docs/kcl/types/AxisAndOrigin3d) + + + + + + + + +---- +Tagged edge. + +[`EdgeReference`](/docs/kcl/types/EdgeReference) + + + + + + + + +---- + + + + + diff --git a/docs/kcl/types/AxisAndOrigin.md b/docs/kcl/types/AxisAndOrigin2d.md similarity index 83% rename from docs/kcl/types/AxisAndOrigin.md rename to docs/kcl/types/AxisAndOrigin2d.md index ae9deb67e..23177e179 100644 --- a/docs/kcl/types/AxisAndOrigin.md +++ b/docs/kcl/types/AxisAndOrigin2d.md @@ -1,10 +1,10 @@ --- -title: "AxisAndOrigin" -excerpt: "Axis and origin." +title: "AxisAndOrigin2d" +excerpt: "A 2D axis and origin." layout: manual --- -Axis and origin. +A 2D axis and origin. diff --git a/docs/kcl/types/AxisAndOrigin3d.md b/docs/kcl/types/AxisAndOrigin3d.md new file mode 100644 index 000000000..da0a306e0 --- /dev/null +++ b/docs/kcl/types/AxisAndOrigin3d.md @@ -0,0 +1,105 @@ +--- +title: "AxisAndOrigin3d" +excerpt: "A 3D axis and origin." +layout: manual +--- + +A 3D axis and origin. + + + + + +**This schema accepts exactly one of the following:** + +X-axis. + +**enum:** `X` + + + + + + + + +---- +Y-axis. + +**enum:** `Y` + + + + + + + + +---- +Z-axis. + +**enum:** `Z` + + + + + + + + +---- +Flip the X-axis. + +**enum:** `-X` + + + + + + + + +---- +Flip the Y-axis. + +**enum:** `-Y` + + + + + + + + +---- +Flip the Z-axis. + +**enum:** `-Z` + + + + + + + + +---- + +**Type:** `object` + + + + + +## Properties + +| Property | Type | Description | Required | +|----------|------|-------------|----------| +| `custom` |`object`| | No | + + +---- + + + + diff --git a/docs/kcl/types/CircleThreePointData.md b/docs/kcl/types/CircleThreePointData.md new file mode 100644 index 000000000..d5f9a8044 --- /dev/null +++ b/docs/kcl/types/CircleThreePointData.md @@ -0,0 +1,23 @@ +--- +title: "CircleThreePointData" +excerpt: "Data for drawing a 3-point circle" +layout: manual +--- + +Data for drawing a 3-point circle + +**Type:** `object` + + + + + +## Properties + +| Property | Type | Description | Required | +|----------|------|-------------|----------| +| `p1` |`[number, number]`| Point one for circle derivation. | No | +| `p2` |`[number, number]`| Point two for circle derivation. | No | +| `p3` |`[number, number]`| Point three for circle derivation. | No | + + diff --git a/docs/kcl/types/Helix.md b/docs/kcl/types/Helix.md new file mode 100644 index 000000000..89fc05e77 --- /dev/null +++ b/docs/kcl/types/Helix.md @@ -0,0 +1,25 @@ +--- +title: "Helix" +excerpt: "A helix." +layout: manual +--- + +A helix. + +**Type:** `object` + + + + + +## Properties + +| Property | Type | Description | Required | +|----------|------|-------------|----------| +| `value` |`string`| The id of the helix. | No | +| `revolutions` |`number`| Number of revolutions. | No | +| `angleStart` |`number`| Start angle (in degrees). | No | +| `ccw` |`boolean`| Is the helix rotation counter clockwise? | No | +| `__meta` |`[` [`Metadata`](/docs/kcl/types/Metadata) `]`| | No | + + diff --git a/docs/kcl/types/HelixData.md b/docs/kcl/types/HelixData.md index f2ca56167..1ede422e7 100644 --- a/docs/kcl/types/HelixData.md +++ b/docs/kcl/types/HelixData.md @@ -1,10 +1,10 @@ --- title: "HelixData" -excerpt: "Data for helices." +excerpt: "Data for a helix." layout: manual --- -Data for helices. +Data for a helix. **Type:** `object` @@ -19,6 +19,8 @@ Data for helices. | `revolutions` |`number`| Number of revolutions. | No | | `angleStart` |`number`| Start angle (in degrees). | No | | `ccw` |`boolean`| Is the helix rotation counter clockwise? The default is `false`. | No | -| `length` |`number`| Length of the helix. If this argument is not provided, the height of the solid is used. | No | +| `length` |`number`| Length of the helix. | No | +| `radius` |`number`| Radius of the helix. | No | +| `axis` |[`Axis3dOrEdgeReference`](/docs/kcl/types/Axis3dOrEdgeReference)| Axis to use as mirror. | No | diff --git a/docs/kcl/types/HelixRevolutionsData.md b/docs/kcl/types/HelixRevolutionsData.md new file mode 100644 index 000000000..fa7cf7e60 --- /dev/null +++ b/docs/kcl/types/HelixRevolutionsData.md @@ -0,0 +1,24 @@ +--- +title: "HelixRevolutionsData" +excerpt: "Data for helix revolutions." +layout: manual +--- + +Data for helix revolutions. + +**Type:** `object` + + + + + +## Properties + +| Property | Type | Description | Required | +|----------|------|-------------|----------| +| `revolutions` |`number`| Number of revolutions. | No | +| `angleStart` |`number`| Start angle (in degrees). | No | +| `ccw` |`boolean`| Is the helix rotation counter clockwise? The default is `false`. | No | +| `length` |`number`| Length of the helix. If this argument is not provided, the height of the solid is used. | No | + + diff --git a/docs/kcl/types/HelixValue.md b/docs/kcl/types/HelixValue.md new file mode 100644 index 000000000..d9e857d0f --- /dev/null +++ b/docs/kcl/types/HelixValue.md @@ -0,0 +1,25 @@ +--- +title: "HelixValue" +excerpt: "A helix." +layout: manual +--- + +A helix. + +**Type:** `object` + + + + + +## Properties + +| Property | Type | Description | Required | +|----------|------|-------------|----------| +| `value` |`string`| The id of the helix. | No | +| `revolutions` |`number`| Number of revolutions. | No | +| `angleStart` |`number`| Start angle (in degrees). | No | +| `ccw` |`boolean`| Is the helix rotation counter clockwise? | No | +| `__meta` |`[` [`Metadata`](/docs/kcl/types/Metadata) `]`| | No | + + diff --git a/docs/kcl/types/KclValue.md b/docs/kcl/types/KclValue.md index cabf63161..c958945ce 100644 --- a/docs/kcl/types/KclValue.md +++ b/docs/kcl/types/KclValue.md @@ -285,6 +285,27 @@ An solid is a collection of extrude surfaces. | `value` |`[` [`Solid`](/docs/kcl/types/Solid) `]`| | No | +---- +A helix. + +**Type:** `object` + + + + + +## Properties + +| Property | Type | Description | Required | +|----------|------|-------------|----------| +| `type` |enum: [`Helix`](/docs/kcl/types/Helix)| | No | +| `value` |`string`| The id of the helix. | No | +| `revolutions` |`number`| Number of revolutions. | No | +| `angleStart` |`number`| Start angle (in degrees). | No | +| `ccw` |`boolean`| Is the helix rotation counter clockwise? | No | +| `__meta` |`[` [`Metadata`](/docs/kcl/types/Metadata) `]`| | No | + + ---- Data for an imported geometry. diff --git a/docs/kcl/types/Mirror2dData.md b/docs/kcl/types/Mirror2dData.md index 40ee590c4..1c10e01a1 100644 --- a/docs/kcl/types/Mirror2dData.md +++ b/docs/kcl/types/Mirror2dData.md @@ -16,6 +16,6 @@ Data for a mirror. | Property | Type | Description | Required | |----------|------|-------------|----------| -| `axis` |[`AxisOrEdgeReference`](/docs/kcl/types/AxisOrEdgeReference)| Axis to use as mirror. | No | +| `axis` |[`Axis2dOrEdgeReference`](/docs/kcl/types/Axis2dOrEdgeReference)| Axis to use as mirror. | No | diff --git a/docs/kcl/types/RevolveData.md b/docs/kcl/types/RevolveData.md index ba7c3c99c..70449d9b7 100644 --- a/docs/kcl/types/RevolveData.md +++ b/docs/kcl/types/RevolveData.md @@ -17,7 +17,7 @@ Data for revolution surfaces. | Property | Type | Description | Required | |----------|------|-------------|----------| | `angle` |`number` (**maximum:** 360.0) (**minimum:** -360.0)| Angle to revolve (in degrees). Default is 360. | No | -| `axis` |[`AxisOrEdgeReference`](/docs/kcl/types/AxisOrEdgeReference)| Axis of revolution. | No | +| `axis` |[`Axis2dOrEdgeReference`](/docs/kcl/types/Axis2dOrEdgeReference)| Axis of revolution. | No | | `tolerance` |`number`| Tolerance for the revolve operation. | No | diff --git a/docs/kcl/types/SweepData.md b/docs/kcl/types/SweepData.md index df2d5915c..137dc8165 100644 --- a/docs/kcl/types/SweepData.md +++ b/docs/kcl/types/SweepData.md @@ -16,7 +16,7 @@ Data for a sweep. | Property | Type | Description | Required | |----------|------|-------------|----------| -| `path` |[`Sketch`](/docs/kcl/types/Sketch)| The path to sweep along. | No | +| `path` |[`SweepPath`](/docs/kcl/types/SweepPath)| The path to sweep along. | No | | `sectional` |`boolean`| If true, the sweep will be broken up into sub-sweeps (extrusions, revolves, sweeps) based on the trajectory path components. | No | | `tolerance` |`number`| Tolerance for the sweep operation. | No | diff --git a/docs/kcl/types/SweepPath.md b/docs/kcl/types/SweepPath.md new file mode 100644 index 000000000..02da51217 --- /dev/null +++ b/docs/kcl/types/SweepPath.md @@ -0,0 +1,42 @@ +--- +title: "SweepPath" +excerpt: "A path to sweep along." +layout: manual +--- + +A path to sweep along. + + + + +**This schema accepts any of the following:** + +A path to sweep along. + +[`Sketch`](/docs/kcl/types/Sketch) + + + + + + + + +---- +A path to sweep along. + +[`Helix`](/docs/kcl/types/Helix) + + + + + + + + +---- + + + + + diff --git a/e2e/playwright/basic-sketch.spec.ts b/e2e/playwright/basic-sketch.spec.ts index a4c1f1081..05665dffc 100644 --- a/e2e/playwright/basic-sketch.spec.ts +++ b/e2e/playwright/basic-sketch.spec.ts @@ -156,7 +156,7 @@ test.describe('Basic sketch', () => { await doBasicSketch(page, homePage, ['code']) }) - test.fixme('code pane closed at start', async ({ page, homePage }) => { + test('code pane closed at start', async ({ page, homePage }) => { // Load the app with the code panes await page.addInitScript(async (persistModelingContext) => { localStorage.setItem( diff --git a/e2e/playwright/feature-tree-pane.spec.ts b/e2e/playwright/feature-tree-pane.spec.ts new file mode 100644 index 000000000..04140aa5d --- /dev/null +++ b/e2e/playwright/feature-tree-pane.spec.ts @@ -0,0 +1,127 @@ +import { test, expect } from './zoo-test' +import * as fsp from 'fs/promises' +import { join } from 'path' + +const FEATURE_TREE_EXAMPLE_CODE = `export fn timesFive(x) { + return 5 * x +} +export fn triangle() { + return startSketchOn('XZ') + |> startProfileAt([0, 0], %) + |> xLine(10, %) + |> line([-10, -5], %) + |> lineTo([profileStartX(%), profileStartY(%)], %) + |> close(%) +} + +length001 = timesFive(1) * 5 +sketch001 = startSketchOn('XZ') + |> startProfileAt([20, 10], %) + |> line([10, 10], %) + |> angledLine([-45, length001], %) + |> lineTo([profileStartX(%), profileStartY(%)], %) + |> close(%) +revolve001 = revolve({ axis = "X" }, sketch001) +triangle() + |> extrude(30, %) +plane001 = offsetPlane('XY', 10) +sketch002 = startSketchOn(plane001) + |> startProfileAt([-20, 0], %) + |> line([5, -15], %) + |> xLine(-10, %) + |> lineTo([-40, 0], %) + |> lineTo([profileStartX(%), profileStartY(%)], %) + |> close(%) +extrude001 = extrude(10, sketch002) +` + +test.describe('Feature Tree pane', () => { + test( + 'User can go to definition and go to function definition', + { tag: '@electron' }, + async ({ context, homePage, scene, editor, toolbar }) => { + await context.folderSetupFn(async (dir) => { + const bracketDir = join(dir, 'test-sample') + await fsp.mkdir(bracketDir, { recursive: true }) + await fsp.writeFile( + join(bracketDir, 'main.kcl'), + FEATURE_TREE_EXAMPLE_CODE, + 'utf-8' + ) + }) + + await test.step('setup test', async () => { + await homePage.expectState({ + projectCards: [ + { + title: 'test-sample', + fileCount: 1, + }, + ], + sortBy: 'last-modified-desc', + }) + await homePage.openProject('test-sample') + await scene.waitForExecutionDone() + await editor.closePane() + await toolbar.openFeatureTreePane() + }) + + async function testViewSource({ + operationName, + operationIndex, + expectedActiveLine, + }: { + operationName: string + operationIndex: number + expectedActiveLine: string + }) { + await test.step(`Go to definition of the ${operationName}`, async () => { + await toolbar.viewSourceOnOperation(operationName, operationIndex) + await editor.expectState({ + highlightedCode: '', + diagnostics: [], + activeLines: [expectedActiveLine], + }) + await expect( + editor.activeLine.first(), + `${operationName} code should be scrolled into view` + ).toBeVisible() + }) + } + + await testViewSource({ + operationName: 'Offset Plane', + operationIndex: 0, + expectedActiveLine: "plane001 = offsetPlane('XY', 10)", + }) + await testViewSource({ + operationName: 'Extrude', + operationIndex: 1, + expectedActiveLine: 'extrude001 = extrude(10, sketch002)', + }) + await testViewSource({ + operationName: 'Revolve', + operationIndex: 0, + expectedActiveLine: 'revolve001 = revolve({ axis = "X" }, sketch001)', + }) + await testViewSource({ + operationName: 'Triangle', + operationIndex: 0, + expectedActiveLine: 'triangle()', + }) + + await test.step('Go to definition on the triangle function', async () => { + await toolbar.goToDefinitionOnOperation('Triangle', 0) + await editor.expectState({ + highlightedCode: '', + diagnostics: [], + activeLines: ['export fn triangle() {'], + }) + await expect( + editor.activeLine.first(), + 'Triangle function definition should be scrolled into view' + ).toBeVisible() + }) + } + ) +}) diff --git a/e2e/playwright/fixtures/editorFixture.ts b/e2e/playwright/fixtures/editorFixture.ts index 6d2dc51b5..ecd768c8e 100644 --- a/e2e/playwright/fixtures/editorFixture.ts +++ b/e2e/playwright/fixtures/editorFixture.ts @@ -20,7 +20,7 @@ export class EditorFixture { private diagnosticsTooltip!: Locator private diagnosticsGutterIcon!: Locator private codeContent!: Locator - private activeLine!: Locator + public activeLine!: Locator constructor(page: Page) { this.page = page diff --git a/e2e/playwright/fixtures/sceneFixture.ts b/e2e/playwright/fixtures/sceneFixture.ts index c9617c3b8..76e42e555 100644 --- a/e2e/playwright/fixtures/sceneFixture.ts +++ b/e2e/playwright/fixtures/sceneFixture.ts @@ -38,7 +38,8 @@ type DragFromHandler = ( export class SceneFixture { public page: Page - + public streamWrapper!: Locator + public loadingIndicator!: Locator private exeIndicator!: Locator constructor(page: Page) { @@ -66,6 +67,8 @@ export class SceneFixture { this.page = page this.exeIndicator = page.getByTestId('model-state-indicator-execution-done') + this.streamWrapper = page.getByTestId('stream') + this.loadingIndicator = this.streamWrapper.getByTestId('loading') } makeMouseHelpers = ( diff --git a/e2e/playwright/fixtures/toolbarFixture.ts b/e2e/playwright/fixtures/toolbarFixture.ts index d7e13def3..149e8e608 100644 --- a/e2e/playwright/fixtures/toolbarFixture.ts +++ b/e2e/playwright/fixtures/toolbarFixture.ts @@ -1,6 +1,13 @@ import type { Page, Locator } from '@playwright/test' import { expect } from '../zoo-test' -import { doAndWaitForImageDiff } from '../test-utils' +import { + checkIfPaneIsOpen, + closePane, + doAndWaitForImageDiff, + openPane, +} from '../test-utils' +import { SidebarType } from 'components/ModelingSidebar/ModelingPanes' +import { SIDEBAR_BUTTON_SUFFIX } from 'lib/constants' export class ToolbarFixture { public page: Page @@ -23,6 +30,10 @@ export class ToolbarFixture { filePane!: Locator exeIndicator!: Locator treeInputField!: Locator + /** The sidebar button for the Feature Tree pane */ + featureTreeId = 'feature-tree' as const + /** The pane element for the Feature Tree */ + featureTreePane!: Locator constructor(page: Page) { this.page = page @@ -47,6 +58,7 @@ export class ToolbarFixture { this.treeInputField = page.getByTestId('tree-input-field') this.filePane = page.locator('#files-pane') + this.featureTreePane = page.locator('#feature-tree-pane') this.fileCreateToast = page.getByText('Successfully created') this.exeIndicator = page.getByTestId('model-state-indicator-execution-done') } @@ -106,4 +118,76 @@ export class ToolbarFixture { ).toBeVisible() await this.page.getByTestId('dropdown-center-rectangle').click() } + + async closePane(paneId: SidebarType) { + return closePane(this.page, paneId + SIDEBAR_BUTTON_SUFFIX) + } + async openPane(paneId: SidebarType) { + return openPane(this.page, paneId + SIDEBAR_BUTTON_SUFFIX) + } + async checkIfPaneIsOpen(paneId: SidebarType) { + return checkIfPaneIsOpen(this.page, paneId + SIDEBAR_BUTTON_SUFFIX) + } + + async openFeatureTreePane() { + return this.openPane(this.featureTreeId) + } + async closeFeatureTreePane() { + await this.closePane(this.featureTreeId) + } + async checkIfFeatureTreePaneIsOpen() { + return this.checkIfPaneIsOpen(this.featureTreeId) + } + + /** + * Get a specific operation button from the Feature Tree pane + */ + async getFeatureTreeOperation(operationName: string, operationIndex: number) { + await this.openFeatureTreePane() + await expect(this.featureTreePane).toBeVisible() + return this.featureTreePane + .getByRole('button', { + name: operationName, + }) + .nth(operationIndex) + } + + /** + * View source on a specific operation in the Feature Tree pane. + * @param operationName The name of the operation type + * @param operationIndex The index out of operations of this type + */ + async viewSourceOnOperation(operationName: string, operationIndex: number) { + const operationButton = await this.getFeatureTreeOperation( + operationName, + operationIndex + ) + const viewSourceMenuButton = this.page.getByRole('button', { + name: 'View KCL source code', + }) + + await operationButton.click({ button: 'right' }) + await expect(viewSourceMenuButton).toBeVisible() + await viewSourceMenuButton.click() + } + + /** + * Go to definition on a specific operation in the Feature Tree pane + */ + async goToDefinitionOnOperation( + operationName: string, + operationIndex: number + ) { + const operationButton = await this.getFeatureTreeOperation( + operationName, + operationIndex + ) + const goToDefinitionMenuButton = this.page.getByRole('button', { + name: 'View function definition', + }) + + await operationButton.click({ button: 'right' }) + await expect(goToDefinitionMenuButton).toBeVisible() + await goToDefinitionMenuButton.click() + } } diff --git a/e2e/playwright/projects.spec.ts b/e2e/playwright/projects.spec.ts index 7ecb99032..38b832473 100644 --- a/e2e/playwright/projects.spec.ts +++ b/e2e/playwright/projects.spec.ts @@ -115,7 +115,7 @@ test( ) test( - 'yyyyyyyyy open a file in a project works and renders, open another file in different project with errors, it should clear the scene', + 'open a file in a project works and renders, open another file in different project with errors, it should clear the scene', { tag: '@electron' }, async ({ context, page }, testInfo) => { await context.folderSetupFn(async (dir) => { @@ -199,7 +199,7 @@ test( ) test( - 'aaayyyyyyyy open a file in a project works and renders, open another file in different project that is empty, it should clear the scene', + 'open a file in a project works and renders, open another file in different project that is empty, it should clear the scene', { tag: '@electron' }, async ({ context, page }, testInfo) => { await context.folderSetupFn(async (dir) => { @@ -276,7 +276,7 @@ test( ) test( - 'nooooooooooooo open a file in a project works and renders, open empty file, it should clear the scene', + 'open a file in a project works and renders, open empty file, it should clear the scene', { tag: '@electron' }, async ({ context, page }, testInfo) => { await context.folderSetupFn(async (dir) => { @@ -1885,3 +1885,48 @@ test.fixme( }) } ) + +test( + 'project name with foreign characters should open', + { tag: '@electron' }, + async ({ context, page }, testInfo) => { + await context.folderSetupFn(async (dir) => { + const bracketDir = path.join(dir, 'اَلْعَرَبِيَّةُ') + await fsp.mkdir(bracketDir, { recursive: true }) + await fsp.copyFile( + executorInputPath('focusrite_scarlett_mounting_braket.kcl'), + path.join(bracketDir, 'main.kcl') + ) + + await fsp.writeFile(path.join(bracketDir, 'empty.kcl'), '') + }) + + await page.setBodyDimensions({ width: 1200, height: 500 }) + const u = await getUtils(page) + + page.on('console', console.log) + + const pointOnModel = { x: 630, y: 280 } + + await test.step('Opening the اَلْعَرَبِيَّةُ project should load the stream', async () => { + // expect to see the text bracket + await expect(page.getByText('اَلْعَرَبِيَّةُ')).toBeVisible() + + await page.getByText('اَلْعَرَبِيَّةُ').click() + + await expect( + page.getByRole('button', { name: 'Start Sketch' }) + ).toBeEnabled({ + timeout: 20_000, + }) + + // gray at this pixel means the stream has loaded in the most + // user way we can verify it (pixel color) + await expect + .poll(() => u.getGreatestPixDiff(pointOnModel, [85, 85, 85]), { + timeout: 10_000, + }) + .toBeLessThan(15) + }) + } +) diff --git a/e2e/playwright/regression-tests.spec.ts b/e2e/playwright/regression-tests.spec.ts index afacd5b6b..b50d55fd2 100644 --- a/e2e/playwright/regression-tests.spec.ts +++ b/e2e/playwright/regression-tests.spec.ts @@ -614,6 +614,38 @@ extrude001 = extrude(50, sketch001) await expect(gizmo).toBeVisible() }) }) + + test(`Refreshing the app doesn't cause the stream to pause on long-executing files`, async ({ + context, + homePage, + scene, + toolbar, + viewport, + }) => { + await context.folderSetupFn(async (dir) => { + const legoDir = path.join(dir, 'lego') + await fsp.mkdir(legoDir, { recursive: true }) + await fsp.copyFile( + executorInputPath('lego.kcl'), + path.join(legoDir, 'main.kcl') + ) + }) + + await test.step(`Test setup`, async () => { + await homePage.openProject('lego') + await toolbar.closePane('code') + }) + await test.step(`Waiting for the loading spinner to disappear`, async () => { + await scene.loadingIndicator.waitFor({ state: 'detached' }) + }) + await test.step(`The part should start loading quickly, not waiting until execution is complete`, async () => { + await scene.expectPixelColor( + [143, 143, 143], + { x: (viewport?.width ?? 1200) / 2, y: (viewport?.height ?? 500) / 2 }, + 15 + ) + }) + }) }) async function clickExportButton(page: Page) { diff --git a/e2e/playwright/sketch-tests.spec.ts b/e2e/playwright/sketch-tests.spec.ts index 8b60684b5..7317cbb30 100644 --- a/e2e/playwright/sketch-tests.spec.ts +++ b/e2e/playwright/sketch-tests.spec.ts @@ -40,8 +40,8 @@ test.describe('Sketch tests', () => { ${startProfileAt1} |> arc({ radius = screwRadius, - angle_start = 0, - angle_end = 360 + angleStart = 0, + angleEnd = 360 }, %) part001 = startSketchOn('XY') @@ -61,8 +61,8 @@ test.describe('Sketch tests', () => { |> yLine(wireOffset, %) |> arc({ radius = wireRadius, - angle_start = 0, - angle_end = 180 + angleStart = 0, + angleEnd = 180 }, %) |> yLine(-wireOffset, %) |> xLine(-width / 4, %) @@ -2263,3 +2263,85 @@ loft([profile001, profile002]) ) }) }) + +// Regression test for https://github.com/KittyCAD/modeling-app/issues/4891 +test.describe(`Click based selection don't brick the app when clicked out of range after format using cache`, () => { + test(`Can select a line that reformmed after entering sketch mode`, async ({ + context, + page, + scene, + toolbar, + editor, + homePage, + }) => { + // We seed the scene with a single offset plane + await context.addInitScript(() => { + localStorage.setItem( + 'persistCode', + `sketch001 = startSketchOn('XZ') + |> startProfileAt([0, 0], %) + |> line([3.14, 3.14], %) + |> arcTo({ + end = [4, 2], + interior = [1, 2] + }, %) +` + ) + }) + + await homePage.goToModelingScene() + await scene.waitForExecutionDone() + + await test.step(`format the code`, async () => { + // doesn't contain condensed version + await editor.expectEditor.not.toContain( + `arcTo({ end = [4, 2], interior = [1, 2] }, %)` + ) + // click the code to enter sketch mode + await page.getByText(`arcTo`).click() + // Format the code. + await page.locator('#code-pane button:first-child').click() + await page.locator('button:has-text("Format code")').click() + }) + + await test.step(`Ensure the code reformatted`, async () => { + await editor.expectEditor.toContain( + `arcTo({ end = [4, 2], interior = [1, 2] }, %)` + ) + }) + + const [arcClick, arcHover] = scene.makeMouseHelpers(699, 337) + await test.step('Ensure we can hover the arc', async () => { + await arcHover() + + // Check that the code is highlighted + await editor.expectState({ + activeLines: ["sketch001=startSketchOn('XZ')"], + diagnostics: [], + highlightedCode: 'arcTo({end = [4, 2], interior = [1, 2]}, %)', + }) + }) + + await test.step('reset the selection', async () => { + // Move the mouse out of the way + await page.mouse.move(655, 337) + + await editor.expectState({ + activeLines: ["sketch001=startSketchOn('XZ')"], + diagnostics: [], + highlightedCode: '', + }) + }) + + await test.step('Ensure we can click the arc', async () => { + await arcClick() + + // Check that the code is highlighted + await editor.expectState({ + activeLines: [], + diagnostics: [], + highlightedCode: 'arcTo({end = [4, 2], interior = [1, 2]}, %)', + }) + }) + }) +}) diff --git a/e2e/playwright/snapshot-tests.spec.ts b/e2e/playwright/snapshot-tests.spec.ts index 3a88f375f..0e4d38295 100644 --- a/e2e/playwright/snapshot-tests.spec.ts +++ b/e2e/playwright/snapshot-tests.spec.ts @@ -375,6 +375,7 @@ const extrudeDefaultPlane = async (context: any, page: any, plane: string) => { await u.closeKclCodePanel() await expect(page).toHaveScreenshot({ maxDiffPixels: 100, + mask: [page.getByTestId('model-state-indicator')], }) await u.openKclCodePanel() } diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Inch-scale-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Inch-scale-1-Google-Chrome-linux.png index 3f0a7b775..fa6944cb7 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Inch-scale-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Inch-scale-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Inch-scale-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Inch-scale-1-Google-Chrome-win32.png deleted file mode 100644 index be428bf08..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Inch-scale-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Inch-scale-2-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Inch-scale-2-Google-Chrome-linux.png index c9a555d19..9ae654912 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Inch-scale-2-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Inch-scale-2-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Inch-scale-2-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Inch-scale-2-Google-Chrome-win32.png deleted file mode 100644 index bb054abe6..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Inch-scale-2-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Millimeter-scale-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Millimeter-scale-1-Google-Chrome-linux.png index ba24150e3..036ca2ab2 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Millimeter-scale-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Millimeter-scale-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Millimeter-scale-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Millimeter-scale-1-Google-Chrome-win32.png deleted file mode 100644 index 10a4bf4b8..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Millimeter-scale-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Millimeter-scale-2-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Millimeter-scale-2-Google-Chrome-linux.png index 59b6ba284..d9afbd351 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Millimeter-scale-2-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Millimeter-scale-2-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Millimeter-scale-2-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Millimeter-scale-2-Google-Chrome-win32.png deleted file mode 100644 index 84847896d..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Millimeter-scale-2-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-circle-should-look-right-1-Google-Chrome-darwin.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-circle-should-look-right-1-Google-Chrome-darwin.png deleted file mode 100644 index 3b725b285..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-circle-should-look-right-1-Google-Chrome-darwin.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-circle-should-look-right-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-circle-should-look-right-1-Google-Chrome-linux.png index ab7558482..3da9ed12b 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-circle-should-look-right-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-circle-should-look-right-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-circle-should-look-right-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-circle-should-look-right-1-Google-Chrome-win32.png deleted file mode 100644 index 850b72cc1..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-circle-should-look-right-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-rectangles-should-look-right-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-rectangles-should-look-right-1-Google-Chrome-linux.png index 0caa8af05..bb1654a55 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-rectangles-should-look-right-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-rectangles-should-look-right-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-rectangles-should-look-right-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-rectangles-should-look-right-1-Google-Chrome-win32.png deleted file mode 100644 index 0efde30de..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-rectangles-should-look-right-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-segments-should-look-right-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-segments-should-look-right-1-Google-Chrome-linux.png index b69c12bc2..15a15ce8b 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-segments-should-look-right-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-segments-should-look-right-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-segments-should-look-right-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-segments-should-look-right-1-Google-Chrome-win32.png deleted file mode 100644 index 7fa2b6b7c..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-segments-should-look-right-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-segments-should-look-right-2-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-segments-should-look-right-2-Google-Chrome-linux.png index 3071632aa..2b2da82cf 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-segments-should-look-right-2-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-segments-should-look-right-2-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-segments-should-look-right-2-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-segments-should-look-right-2-Google-Chrome-win32.png deleted file mode 100644 index 7cec6f2e8..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-segments-should-look-right-2-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-1-Google-Chrome-darwin.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-1-Google-Chrome-darwin.png deleted file mode 100644 index 7060c24b4..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-1-Google-Chrome-darwin.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-1-Google-Chrome-linux.png index 61bf0707b..b6c149ea4 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-1-Google-Chrome-win32.png deleted file mode 100644 index 1d1640822..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-darwin.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-darwin.png deleted file mode 100644 index 0550ff418..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-darwin.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-linux.png index 18d7eece9..dc1bc65ee 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-win32.png deleted file mode 100644 index fd94b37cc..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-on-1-Google-Chrome-darwin.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-on-1-Google-Chrome-darwin.png deleted file mode 100644 index 75c546cb9..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-on-1-Google-Chrome-darwin.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-on-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-on-1-Google-Chrome-linux.png index d72cef5b2..12b4020c5 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-on-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-on-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-on-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-on-1-Google-Chrome-win32.png deleted file mode 100644 index 96afeb186..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-on-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Sketch-on-face-with-none-z-up-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Sketch-on-face-with-none-z-up-1-Google-Chrome-linux.png index b0ee65fb7..7b18289fe 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Sketch-on-face-with-none-z-up-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Sketch-on-face-with-none-z-up-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Sketch-on-face-with-none-z-up-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Sketch-on-face-with-none-z-up-1-Google-Chrome-win32.png deleted file mode 100644 index 110ae2f07..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Sketch-on-face-with-none-z-up-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-2d-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-2d-1-Google-Chrome-linux.png index 379b3245f..3333456b6 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-2d-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-2d-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-2d-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-2d-1-Google-Chrome-win32.png deleted file mode 100644 index d5ec19347..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-2d-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-3d-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-3d-1-Google-Chrome-linux.png index 7eaaee948..60d8a6d02 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-3d-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-3d-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-3d-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-3d-1-Google-Chrome-win32.png deleted file mode 100644 index 9fe0dcfae..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-3d-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-1-Google-Chrome-darwin.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-1-Google-Chrome-darwin.png deleted file mode 100644 index e0c72eef3..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-1-Google-Chrome-darwin.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-1-Google-Chrome-linux.png index 12ee31e06..81e67db9b 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-1-Google-Chrome-win32.png deleted file mode 100644 index 2fb5954eb..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-opening-window-1-Google-Chrome-darwin.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-opening-window-1-Google-Chrome-darwin.png deleted file mode 100644 index 1a7c7b4b3..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-opening-window-1-Google-Chrome-darwin.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-opening-window-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-opening-window-1-Google-Chrome-linux.png index 76244736e..36d45287e 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-opening-window-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-opening-window-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-opening-window-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-opening-window-1-Google-Chrome-win32.png deleted file mode 100644 index 25d08cc8b..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-opening-window-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XY-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XY-1-Google-Chrome-linux.png index e09a33599..4835fc353 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XY-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XY-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XY-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XY-1-Google-Chrome-win32.png deleted file mode 100644 index b7f2e671b..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XY-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XZ-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XZ-1-Google-Chrome-linux.png index 52107b478..62b5700d4 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XZ-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XZ-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XZ-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XZ-1-Google-Chrome-win32.png deleted file mode 100644 index d0bf84a65..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--XZ-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--YZ-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--YZ-1-Google-Chrome-linux.png index f8b667ea6..a2c00a40e 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--YZ-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--YZ-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--YZ-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--YZ-1-Google-Chrome-win32.png deleted file mode 100644 index b350bc4db..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable--YZ-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-XY-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-XY-1-Google-Chrome-linux.png index 44c4e052d..dae9df8ee 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-XY-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-XY-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-XY-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-XY-1-Google-Chrome-win32.png deleted file mode 100644 index bc5a66940..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-XY-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-XZ-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-XZ-1-Google-Chrome-linux.png index 964f24624..8d6793bfd 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-XZ-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-XZ-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-XZ-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-XZ-1-Google-Chrome-win32.png deleted file mode 100644 index 46a015a11..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-XZ-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-YZ-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-YZ-1-Google-Chrome-linux.png index ec2d40fe7..1fdb62f80 100644 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-YZ-1-Google-Chrome-linux.png and b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-YZ-1-Google-Chrome-linux.png differ diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-YZ-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-YZ-1-Google-Chrome-win32.png deleted file mode 100644 index ade1eec62..000000000 Binary files a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-YZ-1-Google-Chrome-win32.png and /dev/null differ diff --git a/e2e/playwright/testing-selections.spec.ts b/e2e/playwright/testing-selections.spec.ts index 36f1e70f5..1b06e554e 100644 --- a/e2e/playwright/testing-selections.spec.ts +++ b/e2e/playwright/testing-selections.spec.ts @@ -413,25 +413,25 @@ profile003 = startProfileAt([40.16, -120.48], sketch006) await expect(u.codeLocator).toContainText(`sketch005 = startSketchOn({ plane = { origin = { x = 0, y = -50, z = 0 }, - x_axis = { x = 1, y = 0, z = 0 }, - y_axis = { x = 0, y = 0, z = 1 }, - z_axis = { x = 0, y = -1, z = 0 } + xAxis = { x = 1, y = 0, z = 0 }, + yAxis = { x = 0, y = 0, z = 1 }, + zAxis = { x = 0, y = -1, z = 0 } } })`) await expect(u.codeLocator).toContainText(`sketch003 = startSketchOn({ plane = { origin = { x = 116.53, y = 0, z = 163.25 }, - x_axis = { x = -0.81, y = 0, z = 0.58 }, - y_axis = { x = 0, y = -1, z = 0 }, - z_axis = { x = 0.58, y = 0, z = 0.81 } + xAxis = { x = -0.81, y = 0, z = 0.58 }, + yAxis = { x = 0, y = -1, z = 0 }, + zAxis = { x = 0.58, y = 0, z = 0.81 } } })`) await expect(u.codeLocator).toContainText(`sketch002 = startSketchOn({ plane = { origin = { x = -91.74, y = 0, z = 80.89 }, - x_axis = { x = -0.66, y = 0, z = -0.75 }, - y_axis = { x = 0, y = -1, z = 0 }, - z_axis = { x = -0.75, y = 0, z = 0.66 } + xAxis = { x = -0.66, y = 0, z = -0.75 }, + yAxis = { x = 0, y = -1, z = 0 }, + zAxis = { x = -0.75, y = 0, z = 0.66 } } })`) @@ -524,7 +524,7 @@ profile003 = startProfileAt([40.16, -120.48], sketch006) await u.clearCommandLogs() await page.keyboard.press('Backspace') - await expect(page.getByText('Unable to delete part')).toBeVisible() + await expect(page.getByText('Unable to delete selection')).toBeVisible() }) test('Hovering over 3d features highlights code, clicking puts the cursor in the right place and sends selection id to engine', async ({ page, diff --git a/e2e/playwright/text-to-cad-tests.spec.ts b/e2e/playwright/text-to-cad-tests.spec.ts index 0846c7baa..442b38ce3 100644 --- a/e2e/playwright/text-to-cad-tests.spec.ts +++ b/e2e/playwright/text-to-cad-tests.spec.ts @@ -156,13 +156,13 @@ test.describe('Text-to-CAD tests', () => { const cmdSearchBar = page.getByPlaceholder('Search commands') await expect(cmdSearchBar).toBeVisible() - const textToCadCommand = page.getByText('Text-to-CAD') + const textToCadCommand = page.getByRole('option', { name: 'Text-to-CAD' }) await expect(textToCadCommand.first()).toBeVisible() // Click the Text-to-CAD command await textToCadCommand.first().click() // Enter the prompt. - const prompt = page.getByText('Prompt') + const prompt = page.getByRole('textbox', { name: 'Prompt' }) await expect(prompt.first()).toBeVisible() // Type the prompt. @@ -224,13 +224,13 @@ test.describe('Text-to-CAD tests', () => { const cmdSearchBar = page.getByPlaceholder('Search commands') await expect(cmdSearchBar).toBeVisible() - const textToCadCommand = page.getByText('Text-to-CAD') + const textToCadCommand = page.getByRole('option', { name: 'Text-to-CAD' }) await expect(textToCadCommand.first()).toBeVisible() // Click the Text-to-CAD command await textToCadCommand.first().click() // Enter the prompt. - const prompt = page.getByText('Prompt') + const prompt = page.getByRole('textbox', { name: 'Prompt' }) await expect(prompt.first()).toBeVisible() const badPrompt = 'akjsndladf lajbhflauweyfaaaljhr472iouafyvsssssss' @@ -314,13 +314,13 @@ test.describe('Text-to-CAD tests', () => { const cmdSearchBar = page.getByPlaceholder('Search commands') await expect(cmdSearchBar).toBeVisible() - const textToCadCommand = page.getByText('Text-to-CAD') + const textToCadCommand = page.getByRole('option', { name: 'Text-to-CAD' }) await expect(textToCadCommand.first()).toBeVisible() // Click the Text-to-CAD command await textToCadCommand.first().click() // Enter the prompt. - const prompt = page.getByText('Prompt') + const prompt = page.getByRole('textbox', { name: 'Prompt' }) await expect(prompt.first()).toBeVisible() const badPrompt = 'akjsndladflajbhflauweyf15;' @@ -392,13 +392,13 @@ test.describe('Text-to-CAD tests', () => { const cmdSearchBar = page.getByPlaceholder('Search commands') await expect(cmdSearchBar).toBeVisible() - const textToCadCommand = page.getByText('Text-to-CAD') + const textToCadCommand = page.getByRole('option', { name: 'Text-to-CAD' }) await expect(textToCadCommand.first()).toBeVisible() // Click the Text-to-CAD command await textToCadCommand.first().click() // Enter the prompt. - const prompt = page.getByText('Prompt') + const prompt = page.getByRole('textbox', { name: 'Prompt' }) await expect(prompt.first()).toBeVisible() // Type the prompt. @@ -604,7 +604,7 @@ async function sendPromptFromCommandBar(page: Page, promptStr: string) { await page.waitForTimeout(1000) // Enter the prompt. - const prompt = page.getByText('Prompt') + const prompt = page.getByRole('textbox', { name: 'Prompt' }) await expect(prompt.first()).toBeVisible() // Type the prompt. diff --git a/electron-builder.yml b/electron-builder.yml index 3559e2d0d..c8bd0d09e 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -38,7 +38,7 @@ win: # - arm64 signingHashAlgorithms: - sha256 - sign: "./sign-win.js" + sign: "./scripts/sign-win.js" publisherName: "KittyCAD Inc" # needs to be exactly like on Digicert icon: "assets/icon.ico" fileAssociations: diff --git a/interface.d.ts b/interface.d.ts index d28b42767..443918f28 100644 --- a/interface.d.ts +++ b/interface.d.ts @@ -11,6 +11,13 @@ export interface IElectronAPI { open: typeof dialog.showOpenDialog save: typeof dialog.showSaveDialog openExternal: typeof shell.openExternal + takeElectronWindowScreenshot: ({ + width, + height, + }: { + width: number + height: number + }) => Promise showInFolder: typeof shell.showItemInFolder /** Require to be called first before {@link loginWithDeviceFlow} */ startDeviceFlow: (host: string) => Promise @@ -86,5 +93,6 @@ export interface IElectronAPI { declare global { interface Window { electron: IElectronAPI + openExternalLink: (e: React.MouseEvent) => void } } diff --git a/package.json b/package.json index a3a63e6c0..1a5400cd4 100644 --- a/package.json +++ b/package.json @@ -10,23 +10,23 @@ }, "description": "Edit CAD visually or with code", "main": ".vite/build/main.js", - "license": "none", + "license": "MIT", "dependencies": { "@codemirror/autocomplete": "^6.17.0", "@codemirror/commands": "^6.6.0", "@codemirror/language": "^6.10.3", - "@codemirror/lint": "^6.8.1", + "@codemirror/lint": "^6.8.4", "@codemirror/search": "^6.5.6", "@codemirror/state": "^6.4.1", "@codemirror/theme-one-dark": "^6.1.2", - "@csstools/postcss-oklab-function": "^4.0.2", + "@csstools/postcss-oklab-function": "^4.0.7", "@fortawesome/fontawesome-svg-core": "^6.5.2", "@fortawesome/free-brands-svg-icons": "^6.5.2", "@fortawesome/free-solid-svg-icons": "^6.4.2", "@fortawesome/react-fontawesome": "^0.2.0", "@headlessui/react": "^1.7.19", "@headlessui/tailwindcss": "^0.2.0", - "@kittycad/lib": "2.0.7", + "@kittycad/lib": "2.0.12", "@lezer/highlight": "^1.2.1", "@lezer/lr": "^1.4.1", "@react-hook/resize-observer": "^2.0.1", @@ -52,13 +52,13 @@ "react": "^18.3.1", "react-dom": "^18.2.0", "react-hot-toast": "^2.4.1", - "react-hotkeys-hook": "^4.5.1", + "react-hotkeys-hook": "^4.6.1", "react-json-view": "^1.21.3", - "react-modal": "^3.16.1", + "react-modal": "^3.16.3", "react-modal-promise": "^1.0.2", "react-router-dom": "^6.28.0", "sketch-helpers": "^0.0.4", - "three": "^0.166.1", + "three": "^0.172.0", "ua-parser-js": "^1.0.37", "uuid": "^11.0.2", "vscode-jsonrpc": "^8.2.1", @@ -166,7 +166,7 @@ "@types/react": "^18.3.4", "@types/react-dom": "^18.3.1", "@types/react-modal": "^3.16.3", - "@types/three": "^0.163.0", + "@types/three": "^0.172.0", "@types/ua-parser-js": "^0.7.39", "@types/uuid": "^9.0.8", "@types/wicg-file-system-access": "^2023.10.5", @@ -186,7 +186,7 @@ "eslint-plugin-css-modules": "^2.12.0", "eslint-plugin-import": "^2.30.0", "eslint-plugin-suggest-no-throw": "^1.0.0", - "happy-dom": "^15.11.7", + "happy-dom": "^16.3.0", "http-server": "^14.1.1", "husky": "^9.1.5", "kill-port": "^2.0.1", diff --git a/packages/codemirror-lang-kcl/.gitignore b/packages/codemirror-lang-kcl/.gitignore new file mode 100644 index 000000000..c3a9c7928 --- /dev/null +++ b/packages/codemirror-lang-kcl/.gitignore @@ -0,0 +1,7 @@ +node_modules +build +dist +tsconfig.tsbuildinfo +*.d.ts +*.js +!rollup.config.js diff --git a/packages/codemirror-lang-kcl/package.json b/packages/codemirror-lang-kcl/package.json new file mode 100644 index 000000000..785e3e98e --- /dev/null +++ b/packages/codemirror-lang-kcl/package.json @@ -0,0 +1,36 @@ +{ + "name": "@kittycad/codemirror-lang-kcl", + "version": "1.0.0", + "description": "Zoo KCL language support for CodeMirror 6.", + "main": "src/index.ts", + "scripts": { + "build": "rollup -c", + "test": "vitest --config vitest.main.config.ts run" + }, + "type": "module", + "repository": "https://github.com/KittyCAD/modeling-app", + "author": "Zoo Engineering Team", + "license": "MIT", + "private": false, + "exports": { + "import": "./dist/index.js", + "require": "./dist/index.cjs" + }, + "types": "dist/index.d.ts", + "dependencies": { + "@codemirror/language": "^6.10.3", + "@codemirror/state": "^6.4.1", + "@lezer/highlight": "^1.2.1", + "typescript": "^5.7.2" + }, + "devDependencies": { + "@lezer/generator": "^1.7.2", + "@rollup/plugin-typescript": "^12.1.2", + "rollup": "^4.29.1", + "rollup-plugin-dts": "^6.1.1", + "vitest": "^2.1.8" + }, + "files": [ + "dist/" + ] +} diff --git a/packages/codemirror-lang-kcl/rollup.config.js b/packages/codemirror-lang-kcl/rollup.config.js new file mode 100644 index 000000000..d558688be --- /dev/null +++ b/packages/codemirror-lang-kcl/rollup.config.js @@ -0,0 +1,25 @@ +import dts from 'rollup-plugin-dts' +import { lezer } from '@lezer/generator/rollup' +import typescript from '@rollup/plugin-typescript' + +export default [ + { + input: 'src/index.ts', + // imports are considered internal if they start with './' or '/' or 'word:' + external: (id) => id != 'tslib' && !/^(\.?\/|\w:)/.test(id), + output: [ + { file: 'dist/index.cjs', format: 'cjs' }, + { file: 'dist/index.js', format: 'es' }, + ], + plugins: [lezer(), typescript()], + }, + { + input: 'src/index.ts', + external: (id) => id != 'tslib' && !/^(\.?\/|\w:)/.test(id), + output: [ + { file: 'dist/index.d.cts', format: 'cjs' }, + { file: 'dist/index.d.ts', format: 'es' }, + ], + plugins: [lezer(), typescript(), dts()], + }, +] diff --git a/src/editor/plugins/lsp/kcl/highlight.ts b/packages/codemirror-lang-kcl/src/highlight.ts similarity index 100% rename from src/editor/plugins/lsp/kcl/highlight.ts rename to packages/codemirror-lang-kcl/src/highlight.ts diff --git a/packages/codemirror-lang-kcl/src/index.ts b/packages/codemirror-lang-kcl/src/index.ts new file mode 100644 index 000000000..7d77f1375 --- /dev/null +++ b/packages/codemirror-lang-kcl/src/index.ts @@ -0,0 +1,42 @@ +// Base CodeMirror language support for kcl. + +import { + LRLanguage, + LanguageSupport, + indentNodeProp, + continuedIndent, + delimitedIndent, + foldNodeProp, + foldInside, +} from '@codemirror/language' +// @ts-ignore: No types available +import { parser } from './kcl.grammar' + +export const KclLanguage = LRLanguage.define({ + name: 'kcl', + parser: parser.configure({ + props: [ + indentNodeProp.add({ + Body: delimitedIndent({ closing: '}' }), + BlockComment: () => null, + 'Statement Property': continuedIndent({ except: /^{/ }), + }), + foldNodeProp.add({ + 'Body ArrayExpression ObjectExpression': foldInside, + BlockComment(tree) { + return { from: tree.from + 2, to: tree.to - 2 } + }, + PipeExpression(tree) { + return { from: tree.firstChild!.to, to: tree.to } + }, + }), + ], + }), + languageData: { + commentTokens: { line: '//', block: { open: '/*', close: '*/' } }, + }, +}) + +export function kcl() { + return new LanguageSupport(KclLanguage) +} diff --git a/src/editor/plugins/lsp/kcl/kcl.grammar b/packages/codemirror-lang-kcl/src/kcl.grammar similarity index 95% rename from src/editor/plugins/lsp/kcl/kcl.grammar rename to packages/codemirror-lang-kcl/src/kcl.grammar index 59bdcb09a..d8d9419b1 100644 --- a/src/editor/plugins/lsp/kcl/kcl.grammar +++ b/packages/codemirror-lang-kcl/src/kcl.grammar @@ -17,7 +17,7 @@ statement[@isGroup=Statement] { ImportStatement { kw<"import"> ImportItems ImportFrom String } | - FunctionDeclaration { kw<"export">? kw<"fn"> VariableDefinition Equals ParamList Arrow Body } | + FunctionDeclaration { kw<"export">? kw<"fn"> VariableDefinition Equals? ParamList Arrow? Body } | VariableDeclaration { kw<"export">? (kw<"var"> | kw<"let"> | kw<"const">)? VariableDefinition Equals expression } | ReturnStatement { kw<"return"> expression } | ExpressionStatement { expression } @@ -57,7 +57,7 @@ expression[@isGroup=Expression] { UnaryOp { AddOp | BangOp } -ObjectProperty { PropertyName ":" expression } +ObjectProperty { PropertyName (":" | Equals) expression } ArgumentList { "(" commaSep ")" } @@ -85,7 +85,7 @@ commaSep1NoTrailingComma { term ("," term)* } @tokens { String[isolate] { "'" ("\\" _ | !['\\])* "'" | '"' ("\\" _ | !["\\])* '"' } - Number { "." @digit+ | @digit+ ("." @digit*)? } + Number { "." @digit+ | @digit+ ("." @digit+)? } @precedence { Number, "." } AddOp { "+" | "-" } diff --git a/packages/codemirror-lang-kcl/test/all.test.ts b/packages/codemirror-lang-kcl/test/all.test.ts new file mode 100644 index 000000000..dba913ceb --- /dev/null +++ b/packages/codemirror-lang-kcl/test/all.test.ts @@ -0,0 +1,22 @@ +import { KclLanguage } from '../src/index' +import { fileTests } from '@lezer/generator/dist/test' + +import * as fs from 'fs' +import * as path from 'path' + +let caseDir = path.dirname(__filename) + +for (let file of fs.readdirSync(caseDir)) { + if (!/\.txt$/.test(file)) continue + + let fname = /^[^\.]*/.exec(file)?.at(0) + if (fname) { + let tests = fileTests( + fs.readFileSync(path.join(caseDir, file), 'utf8'), + file + ) + describe(fname, () => { + for (let { name, run } of tests) it(name, () => run(KclLanguage.parser)) + }) + } +} diff --git a/packages/codemirror-lang-kcl/test/cases.txt b/packages/codemirror-lang-kcl/test/cases.txt new file mode 100644 index 000000000..8f4e31718 --- /dev/null +++ b/packages/codemirror-lang-kcl/test/cases.txt @@ -0,0 +1,60 @@ +# Booleans + +true +false + +==> + +Program(ExpressionStatement(true), ExpressionStatement(false)) + +# Identifiers + +one +_Two_Three +Four5 + +==> + +Program(ExpressionStatement(VariableName), + ExpressionStatement(VariableName), + ExpressionStatement(VariableName)) + +# Strings + +"hello" +'hi' +"one\"\\two" +'3\'\\four\x' + +==> + +Program(ExpressionStatement(String), + ExpressionStatement(String), + ExpressionStatement(String), + ExpressionStatement(String)) + +# VariableDeclaration + +let a = 'abc' +export const x = 0.2 + +==> + +Program(VariableDeclaration(let, VariableDefinition, Equals, String), + VariableDeclaration(export, const, VariableDefinition, Equals, Number)) + +# IfExpression + +if x { 1 } else { $tag } + +==> + +Program(ExpressionStatement(IfExpression(if, VariableName, Body(ExpressionStatement(Number)), else, Body(ExpressionStatement(TagDeclarator))))) + +# Shebang + +#!anything + +==> + +Program(Shebang) diff --git a/packages/codemirror-lang-kcl/test/fn.txt b/packages/codemirror-lang-kcl/test/fn.txt new file mode 100644 index 000000000..b77946cc4 --- /dev/null +++ b/packages/codemirror-lang-kcl/test/fn.txt @@ -0,0 +1,60 @@ +# full + +fn two = () => { + return 2 +} + +==> + +Program(FunctionDeclaration(fn, + VariableDefinition, + Equals, + ParamList, + Arrow, + Body(ReturnStatement(return, + Number)))) + +# = is optional + +fn one () => { + return 1 +} + +==> + +Program(FunctionDeclaration(fn, + VariableDefinition, + ParamList, + Arrow, + Body(ReturnStatement(return, + Number)))) + +# => is optional + +fn one = () { + return 1 +} + +==> + +Program(FunctionDeclaration(fn, + VariableDefinition, + Equals, + ParamList, + Body(ReturnStatement(return, + Number)))) + +# terse + +fn two() { + return 2 +} + +==> + +Program(FunctionDeclaration(fn, + VariableDefinition, + ParamList, + Body(ReturnStatement(return, + Number)))) + diff --git a/packages/codemirror-lang-kcl/test/key.txt b/packages/codemirror-lang-kcl/test/key.txt new file mode 100644 index 000000000..a8bbf674b --- /dev/null +++ b/packages/codemirror-lang-kcl/test/key.txt @@ -0,0 +1,20 @@ +# colon (deprecated) + +x = { k: 123 } + +==> +Program(VariableDeclaration(VariableDefinition, + Equals, + ObjectExpression(ObjectProperty(PropertyName, + Number)))) + +# equal + +x = { k = 123 } + +==> +Program(VariableDeclaration(VariableDefinition, + Equals, + ObjectExpression(ObjectProperty(PropertyName, + Equals, + Number)))) diff --git a/packages/codemirror-lang-kcl/test/range.txt b/packages/codemirror-lang-kcl/test/range.txt new file mode 100644 index 000000000..b52ae2953 --- /dev/null +++ b/packages/codemirror-lang-kcl/test/range.txt @@ -0,0 +1,43 @@ +# spaced + +a = [0 .. 1] + +==> +Program(VariableDeclaration(VariableDefinition, + Equals, + ArrayExpression(IntegerRange(Number, + Number)))) + +# compact + +a = [0..1] + +==> +Program(VariableDeclaration(VariableDefinition, + Equals, + ArrayExpression(IntegerRange(Number, + Number)))) + +# expr spaced + +a = [start .. start + 10] + +==> +Program(VariableDeclaration(VariableDefinition, + Equals, + ArrayExpression(IntegerRange(VariableName, + BinaryExpression(VariableName, + AddOp, + Number))))) + +# expr compact + +a = [start..start + 10] + +==> +Program(VariableDeclaration(VariableDefinition, + Equals, + ArrayExpression(IntegerRange(VariableName, + BinaryExpression(VariableName, + AddOp, + Number))))) diff --git a/packages/codemirror-lang-kcl/tsconfig.json b/packages/codemirror-lang-kcl/tsconfig.json new file mode 100644 index 000000000..68ae17808 --- /dev/null +++ b/packages/codemirror-lang-kcl/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "composite": true, + "rootDir": "src", + "outDir": "dist", + "target": "esnext", + "lib": ["dom", "dom.iterable", "esnext"], + "module": "esnext", + "esModuleInterop": true, + "moduleResolution": "node", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitAny": true, + "skipLibCheck": true, + "declaration": true + }, + "include": ["src", "./*.ts"], + "exclude": ["node_modules", "vitest.main.config.ts"] +} diff --git a/packages/codemirror-lang-kcl/vitest.main.config.ts b/packages/codemirror-lang-kcl/vitest.main.config.ts new file mode 100644 index 000000000..8664aa768 --- /dev/null +++ b/packages/codemirror-lang-kcl/vitest.main.config.ts @@ -0,0 +1,29 @@ +// Overrides the test options from the modeling-app config. + +import viteTsconfigPaths from 'vite-tsconfig-paths' +import { defineConfig, configDefaults } from 'vitest/config' +// @ts-ignore: No types available +import { lezer } from '@lezer/generator/rollup' + +const config = defineConfig({ + test: { + globals: true, + pool: 'forks', + poolOptions: { + forks: { + maxForks: 2, + minForks: 1, + }, + }, + environment: 'node', + reporters: process.env.GITHUB_ACTIONS + ? ['dot', 'github-actions'] + : ['verbose', 'hanging-process'], + testTimeout: 1000, + hookTimeout: 1000, + teardownTimeout: 1000, + }, + plugins: [viteTsconfigPaths(), lezer()], +}) + +export default config diff --git a/packages/codemirror-lang-kcl/yarn.lock b/packages/codemirror-lang-kcl/yarn.lock new file mode 100644 index 000000000..66e048b88 --- /dev/null +++ b/packages/codemirror-lang-kcl/yarn.lock @@ -0,0 +1,714 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.24.2": + version "7.26.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" + integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== + dependencies: + "@babel/helper-validator-identifier" "^7.25.9" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/helper-validator-identifier@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" + integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== + +"@codemirror/language@^6.10.3": + version "6.10.8" + resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-6.10.8.tgz#3e3a346a2b0a8cf63ee1cfe03349eb1965dce5f9" + integrity sha512-wcP8XPPhDH2vTqf181U8MbZnW+tDyPYy0UzVOa+oHORjyT+mhhom9vBd7dApJwoDz9Nb/a8kHjJIsuA/t8vNFw== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.23.0" + "@lezer/common" "^1.1.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + style-mod "^4.0.0" + +"@codemirror/state@^6.0.0", "@codemirror/state@^6.4.1", "@codemirror/state@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@codemirror/state/-/state-6.5.0.tgz#e98dde85620618651543152fe1c2483300a0ccc9" + integrity sha512-MwBHVK60IiIHDcoMet78lxt6iw5gJOGSbNbOIVBHWVXIH4/Nq1+GQgLLGgI1KlnN86WDXsPudVaqYHKBIx7Eyw== + dependencies: + "@marijn/find-cluster-break" "^1.0.0" + +"@codemirror/view@^6.23.0": + version "6.36.1" + resolved "https://registry.yarnpkg.com/@codemirror/view/-/view-6.36.1.tgz#3c543b8fd72c96b30c4b2b1464d1ebce7e0c5c4b" + integrity sha512-miD1nyT4m4uopZaDdO2uXU/LLHliKNYL9kB1C1wJHrunHLm/rpkb5QVSokqgw9hFqEZakrdlb/VGWX8aYZTslQ== + dependencies: + "@codemirror/state" "^6.5.0" + style-mod "^4.1.0" + w3c-keyname "^2.2.4" + +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== + +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== + +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== + +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== + +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== + +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== + +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== + +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== + +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== + +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== + +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== + +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== + +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== + +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== + +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== + +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== + +"@esbuild/linux-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== + +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== + +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== + +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== + +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== + +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== + +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== + +"@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@lezer/common@^1.0.0", "@lezer/common@^1.1.0": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@lezer/common/-/common-1.2.3.tgz#138fcddab157d83da557554851017c6c1e5667fd" + integrity sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA== + +"@lezer/generator@^1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@lezer/generator/-/generator-1.7.2.tgz#a491c91eb9f117ea803e748fa97574514156a2a3" + integrity sha512-CwgULPOPPmH54tv4gki18bElLCdJ1+FBC+nGVSVD08vFWDsMjS7KEjNTph9JOypDnet90ujN3LzQiW3CyVODNQ== + dependencies: + "@lezer/common" "^1.1.0" + "@lezer/lr" "^1.3.0" + +"@lezer/highlight@^1.0.0", "@lezer/highlight@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@lezer/highlight/-/highlight-1.2.1.tgz#596fa8f9aeb58a608be0a563e960c373cbf23f8b" + integrity sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA== + dependencies: + "@lezer/common" "^1.0.0" + +"@lezer/lr@^1.0.0", "@lezer/lr@^1.3.0": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-1.4.2.tgz#931ea3dea8e9de84e90781001dae30dea9ff1727" + integrity sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA== + dependencies: + "@lezer/common" "^1.0.0" + +"@marijn/find-cluster-break@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz#775374306116d51c0c500b8c4face0f9a04752d8" + integrity sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g== + +"@rollup/plugin-typescript@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-12.1.2.tgz#ebaeec2e7376faa889030ccd7cb485a649e63118" + integrity sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg== + dependencies: + "@rollup/pluginutils" "^5.1.0" + resolve "^1.22.1" + +"@rollup/pluginutils@^5.1.0": + version "5.1.4" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.4.tgz#bb94f1f9eaaac944da237767cdfee6c5b2262d4a" + integrity sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^4.0.2" + +"@rollup/rollup-android-arm-eabi@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.1.tgz#9bd38df6a29afb7f0336d988bc8112af0c8816c0" + integrity sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw== + +"@rollup/rollup-android-arm64@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.1.tgz#bd1a98390e15b76eeef907175a37c5f0f9e4d214" + integrity sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew== + +"@rollup/rollup-darwin-arm64@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.1.tgz#bc6fa8a2cc77b5f367424e5e994e3537524e6879" + integrity sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw== + +"@rollup/rollup-darwin-x64@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.1.tgz#76059c91f06b17406347b127df10f065283b2e61" + integrity sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng== + +"@rollup/rollup-freebsd-arm64@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.1.tgz#83178315c0be4b4c8c1fd835e1952d2dc1eb4e6e" + integrity sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw== + +"@rollup/rollup-freebsd-x64@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.1.tgz#1ef24fa0576bf7899a0a0a649156606dbd7a0d46" + integrity sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w== + +"@rollup/rollup-linux-arm-gnueabihf@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.1.tgz#443a6f5681bf4611caae42988994a6d8ee676216" + integrity sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A== + +"@rollup/rollup-linux-arm-musleabihf@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.1.tgz#9738b27184102228637a683e5f35b22ea352394f" + integrity sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ== + +"@rollup/rollup-linux-arm64-gnu@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.1.tgz#b5e9d5e30ff36a19bedd29c715ba18a1889ff269" + integrity sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA== + +"@rollup/rollup-linux-arm64-musl@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.1.tgz#1d8f68f0829b57f746ec03432ad046f1af014a98" + integrity sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA== + +"@rollup/rollup-linux-loongarch64-gnu@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.1.tgz#07027feb883408e74a3002c8e50caaedd288ae38" + integrity sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw== + +"@rollup/rollup-linux-powerpc64le-gnu@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.1.tgz#544ce1b0847a9c1240425e86f33daceac7ec4e12" + integrity sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w== + +"@rollup/rollup-linux-riscv64-gnu@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.1.tgz#64be13d51852ec1e2dfbd25d997ed5f42f35ea6d" + integrity sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ== + +"@rollup/rollup-linux-s390x-gnu@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.1.tgz#31f51e1e05c6264552d03875d9e2e673f0fd86e3" + integrity sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g== + +"@rollup/rollup-linux-x64-gnu@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.1.tgz#f4c95b26f4ad69ebdb64b42f0ae4da2a0f617958" + integrity sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ== + +"@rollup/rollup-linux-x64-musl@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.1.tgz#ab7be89192f72beb9ea6e2386186fefde4f69d82" + integrity sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA== + +"@rollup/rollup-win32-arm64-msvc@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.1.tgz#7f12efb8240b238346951559998802722944421e" + integrity sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig== + +"@rollup/rollup-win32-ia32-msvc@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.1.tgz#353d14d6eee943004d129796e4feddd3aa260921" + integrity sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng== + +"@rollup/rollup-win32-x64-msvc@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz#c82f04a09ba481e13857d6f2516e072aaa51b7f4" + integrity sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg== + +"@types/estree@1.0.6", "@types/estree@^1.0.0": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + +"@vitest/expect@2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-2.1.8.tgz#13fad0e8d5a0bf0feb675dcf1d1f1a36a1773bc1" + integrity sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw== + dependencies: + "@vitest/spy" "2.1.8" + "@vitest/utils" "2.1.8" + chai "^5.1.2" + tinyrainbow "^1.2.0" + +"@vitest/mocker@2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-2.1.8.tgz#51dec42ac244e949d20009249e033e274e323f73" + integrity sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA== + dependencies: + "@vitest/spy" "2.1.8" + estree-walker "^3.0.3" + magic-string "^0.30.12" + +"@vitest/pretty-format@2.1.8", "@vitest/pretty-format@^2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-2.1.8.tgz#88f47726e5d0cf4ba873d50c135b02e4395e2bca" + integrity sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ== + dependencies: + tinyrainbow "^1.2.0" + +"@vitest/runner@2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-2.1.8.tgz#b0e2dd29ca49c25e9323ea2a45a5125d8729759f" + integrity sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg== + dependencies: + "@vitest/utils" "2.1.8" + pathe "^1.1.2" + +"@vitest/snapshot@2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-2.1.8.tgz#d5dc204f4b95dc8b5e468b455dfc99000047d2de" + integrity sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg== + dependencies: + "@vitest/pretty-format" "2.1.8" + magic-string "^0.30.12" + pathe "^1.1.2" + +"@vitest/spy@2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-2.1.8.tgz#bc41af3e1e6a41ae3b67e51f09724136b88fa447" + integrity sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg== + dependencies: + tinyspy "^3.0.2" + +"@vitest/utils@2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-2.1.8.tgz#f8ef85525f3362ebd37fd25d268745108d6ae388" + integrity sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA== + dependencies: + "@vitest/pretty-format" "2.1.8" + loupe "^3.1.2" + tinyrainbow "^1.2.0" + +assertion-error@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" + integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== + +cac@^6.7.14: + version "6.7.14" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + +chai@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/chai/-/chai-5.1.2.tgz#3afbc340b994ae3610ca519a6c70ace77ad4378d" + integrity sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw== + dependencies: + assertion-error "^2.0.1" + check-error "^2.1.1" + deep-eql "^5.0.1" + loupe "^3.1.0" + pathval "^2.0.0" + +check-error@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" + integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== + +debug@^4.3.7: + version "4.4.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" + integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== + dependencies: + ms "^2.1.3" + +deep-eql@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" + integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== + +es-module-lexer@^1.5.4: + version "1.6.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.6.0.tgz#da49f587fd9e68ee2404fe4e256c0c7d3a81be21" + integrity sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ== + +esbuild@^0.21.3: + version "0.21.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== + optionalDependencies: + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +estree-walker@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + +expect-type@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.1.0.tgz#a146e414250d13dfc49eafcfd1344a4060fa4c75" + integrity sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA== + +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +is-core-module@^2.16.0: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== + dependencies: + hasown "^2.0.2" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +loupe@^3.1.0, loupe@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.1.2.tgz#c86e0696804a02218f2206124c45d8b15291a240" + integrity sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg== + +magic-string@^0.30.10, magic-string@^0.30.12: + version "0.30.17" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" + integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + +ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoid@^3.3.7: + version "3.3.8" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" + integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +pathe@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== + +pathval@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.0.tgz#7e2550b422601d4f6b8e26f1301bc8f15a741a25" + integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== + +picocolors@^1.0.0, picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== + +postcss@^8.4.43: + version "8.4.49" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.49.tgz#4ea479048ab059ab3ae61d082190fabfd994fe19" + integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA== + dependencies: + nanoid "^3.3.7" + picocolors "^1.1.1" + source-map-js "^1.2.1" + +resolve@^1.22.1: + version "1.22.10" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" + integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== + dependencies: + is-core-module "^2.16.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +rollup-plugin-dts@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-6.1.1.tgz#46b33f4d1d7f4e66f1171ced9b282ac11a15a254" + integrity sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA== + dependencies: + magic-string "^0.30.10" + optionalDependencies: + "@babel/code-frame" "^7.24.2" + +rollup@^4.20.0, rollup@^4.29.1: + version "4.29.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.29.1.tgz#a9aaaece817e5f778489e5bf82e379cc8a5c05bc" + integrity sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw== + dependencies: + "@types/estree" "1.0.6" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.29.1" + "@rollup/rollup-android-arm64" "4.29.1" + "@rollup/rollup-darwin-arm64" "4.29.1" + "@rollup/rollup-darwin-x64" "4.29.1" + "@rollup/rollup-freebsd-arm64" "4.29.1" + "@rollup/rollup-freebsd-x64" "4.29.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.29.1" + "@rollup/rollup-linux-arm-musleabihf" "4.29.1" + "@rollup/rollup-linux-arm64-gnu" "4.29.1" + "@rollup/rollup-linux-arm64-musl" "4.29.1" + "@rollup/rollup-linux-loongarch64-gnu" "4.29.1" + "@rollup/rollup-linux-powerpc64le-gnu" "4.29.1" + "@rollup/rollup-linux-riscv64-gnu" "4.29.1" + "@rollup/rollup-linux-s390x-gnu" "4.29.1" + "@rollup/rollup-linux-x64-gnu" "4.29.1" + "@rollup/rollup-linux-x64-musl" "4.29.1" + "@rollup/rollup-win32-arm64-msvc" "4.29.1" + "@rollup/rollup-win32-ia32-msvc" "4.29.1" + "@rollup/rollup-win32-x64-msvc" "4.29.1" + fsevents "~2.3.2" + +siginfo@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" + integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== + +source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + +stackback@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" + integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== + +std-env@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.8.0.tgz#b56ffc1baf1a29dcc80a3bdf11d7fca7c315e7d5" + integrity sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w== + +style-mod@^4.0.0, style-mod@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/style-mod/-/style-mod-4.1.2.tgz#ca238a1ad4786520f7515a8539d5a63691d7bf67" + integrity sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw== + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tinybench@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b" + integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== + +tinyexec@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" + integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== + +tinypool@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.0.2.tgz#706193cc532f4c100f66aa00b01c42173d9051b2" + integrity sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA== + +tinyrainbow@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-1.2.0.tgz#5c57d2fc0fb3d1afd78465c33ca885d04f02abb5" + integrity sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ== + +tinyspy@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-3.0.2.tgz#86dd3cf3d737b15adcf17d7887c84a75201df20a" + integrity sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q== + +typescript@^5.7.2: + version "5.7.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.7.2.tgz#3169cf8c4c8a828cde53ba9ecb3d2b1d5dd67be6" + integrity sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg== + +vite-node@2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-2.1.8.tgz#9495ca17652f6f7f95ca7c4b568a235e0c8dbac5" + integrity sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg== + dependencies: + cac "^6.7.14" + debug "^4.3.7" + es-module-lexer "^1.5.4" + pathe "^1.1.2" + vite "^5.0.0" + +vite@^5.0.0: + version "5.4.11" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.11.tgz#3b415cd4aed781a356c1de5a9ebafb837715f6e5" + integrity sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q== + dependencies: + esbuild "^0.21.3" + postcss "^8.4.43" + rollup "^4.20.0" + optionalDependencies: + fsevents "~2.3.3" + +vitest@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-2.1.8.tgz#2e6a00bc24833574d535c96d6602fb64163092fa" + integrity sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ== + dependencies: + "@vitest/expect" "2.1.8" + "@vitest/mocker" "2.1.8" + "@vitest/pretty-format" "^2.1.8" + "@vitest/runner" "2.1.8" + "@vitest/snapshot" "2.1.8" + "@vitest/spy" "2.1.8" + "@vitest/utils" "2.1.8" + chai "^5.1.2" + debug "^4.3.7" + expect-type "^1.1.0" + magic-string "^0.30.12" + pathe "^1.1.2" + std-env "^3.8.0" + tinybench "^2.9.0" + tinyexec "^0.3.1" + tinypool "^1.0.1" + tinyrainbow "^1.2.0" + vite "^5.0.0" + vite-node "2.1.8" + why-is-node-running "^2.3.0" + +w3c-keyname@^2.2.4: + version "2.2.8" + resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz#7b17c8c6883d4e8b86ac8aba79d39e880f8869c5" + integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ== + +why-is-node-running@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz#a3f69a97107f494b3cdc3bdddd883a7d65cebf04" + integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== + dependencies: + siginfo "^2.0.0" + stackback "0.0.2" diff --git a/public/announce_release.py b/public/announce_release.py index b21027c5c..e05db76e9 100644 --- a/public/announce_release.py +++ b/public/announce_release.py @@ -1,6 +1,7 @@ import re import os import requests +import textwrap webhook_url = os.getenv('DISCORD_WEBHOOK_URL') release_version = os.getenv('RELEASE_VERSION') @@ -25,12 +26,11 @@ if len(modified_release_body) > max_length: # Message to send to Discord data = { - "content": - f''' + "content": textwrap.dedent(f''' **{release_version}** is now available! Check out the latest features and improvements here: {modified_release_body} - ''', + '''), "username": "Modeling App Release Updates", "avatar_url": "https://raw.githubusercontent.com/KittyCAD/modeling-app/main/public/discord-avatar.png" } diff --git a/public/kcl-samples-manifest-fallback.json b/public/kcl-samples-manifest-fallback.json index db2f0988a..aa3b14e74 100644 --- a/public/kcl-samples-manifest-fallback.json +++ b/public/kcl-samples-manifest-fallback.json @@ -84,6 +84,11 @@ "title": "Hex nut", "description": "A hex nut is a type of fastener with a threaded hole and a hexagonal outer shape, used in a wide variety of applications to secure parts together. The hexagonal shape allows for a greater torque to be applied with wrenches or tools, making it one of the most common nut types in hardware." }, + { + "file": "i-beam.kcl", + "title": "I-beam", + "description": "A structural metal beam with an I shaped cross section. Often used in construction" + }, { "file": "kitt.kcl", "title": "Kitt", diff --git a/sign-win.js b/scripts/sign-win.js similarity index 84% rename from sign-win.js rename to scripts/sign-win.js index b7280ed03..09e3666d6 100644 --- a/sign-win.js +++ b/scripts/sign-win.js @@ -24,8 +24,7 @@ exports.default = async (configuration) => { try { execSync( - `smctl sign --fingerprint="${ - process.env.WINDOWS_CERTIFICATE_THUMBPRINT + `smctl sign --fingerprint="${process.env.WINDOWS_CERTIFICATE_THUMBPRINT }" --input "${String(configuration.path)}"`, { stdio: 'inherit', @@ -33,6 +32,6 @@ exports.default = async (configuration) => { ) console.log('Signing using signWin.js script: successful') } catch (error) { - console.error('Signing using signWin.js script: failed:', error) + throw new Error('Signing using signWin.js script: failed:', error) } } diff --git a/src/clientSideScene/sceneEntities.ts b/src/clientSideScene/sceneEntities.ts index bac8e37fe..dfe348f91 100644 --- a/src/clientSideScene/sceneEntities.ts +++ b/src/clientSideScene/sceneEntities.ts @@ -3,6 +3,9 @@ import { DoubleSide, Group, Intersection, + Line, + LineDashedMaterial, + BufferGeometry, Mesh, MeshBasicMaterial, Object3D, @@ -13,6 +16,7 @@ import { Points, Quaternion, Scene, + SphereGeometry, Vector2, Vector3, } from 'three' @@ -31,6 +35,8 @@ import { SKETCH_LAYER, X_AXIS, Y_AXIS, + CIRCLE_3_POINT_DRAFT_POINT, + CIRCLE_3_POINT_DRAFT_CIRCLE, } from './sceneInfra' import { isQuaternionVertical, quaternionFromUpNForward } from './helpers' import { @@ -62,6 +68,7 @@ import { getNodeFromPath, getNodePathFromSourceRange } from 'lang/queryAst' import { executeAst, ToolTip } from 'lang/langHelpers' import { createProfileStartHandle, + createArcGeometry, SegmentUtils, segmentUtils, } from './segments' @@ -1370,6 +1377,231 @@ export class SceneEntities { }) return { updatedEntryNodePath, updatedSketchNodePaths } } + + // lee: Well, it appears all our code in sceneEntities each act as their own + // kind of classes. In this case, I'll keep utility functions pertaining to + // circle3Point here. Feel free to extract as needed. + entryDraftCircle3Point = ( + done: () => void, + startSketchOnASTNodePath: PathToNode, + forward: Vector3, + up: Vector3, + sketchOrigin: Vector3 + ): (() => void) => { + // lee: Not a fan we need to re-iterate this dummy object all over the place + // just to get the scale but okie dokie. + const dummy = new Mesh() + dummy.position.set(0, 0, 0) + const scale = sceneInfra.getClientSceneScaleFactor(dummy) + + const orientation = quaternionFromUpNForward(up, forward) + + // Reminder: the intersection plane is the primary way to derive a XY + // position from a mouse click in ThreeJS. + // Here, we position and orient so it's facing the viewer. + this.intersectionPlane!.setRotationFromQuaternion(orientation) + this.intersectionPlane!.position.copy(sketchOrigin) + + // Keep track of points in the scene with their ThreeJS ids. + const points: Map = new Map() + + // Keep a reference so we can destroy and recreate as needed. + let groupCircle: Group | undefined + + // Add our new group to the list of groups to render + const groupOfDrafts = new Group() + groupOfDrafts.name = 'circle-3-point-group' + groupOfDrafts.position.copy(sketchOrigin) + // lee: I'm keeping this here as a developer gotchya: + // Do not reorient your surfaces to the intersection plane. Your points are + // already in 3D space, not 2D. If you intersect say XZ, you want the points + // to continue to live at the 3D intersection point, not be rotated to end + // up elsewhere! + // groupOfDrafts.setRotationFromQuaternion(orientation) + this.scene.add(groupOfDrafts) + + const DRAFT_POINT_RADIUS = 6 + + const createPoint = (center: Vector3): number => { + const geometry = new SphereGeometry(DRAFT_POINT_RADIUS) + const color = getThemeColorForThreeJs(sceneInfra._theme) + const material = new MeshBasicMaterial({ color }) + + const mesh = new Mesh(geometry, material) + mesh.userData = { type: CIRCLE_3_POINT_DRAFT_POINT } + mesh.layers.set(SKETCH_LAYER) + mesh.position.copy(center) + mesh.scale.set(scale, scale, scale) + mesh.renderOrder = 100 + + groupOfDrafts.add(mesh) + + return mesh.id + } + + const circle3Point = ( + points: Vector2[] + ): undefined | { center: Vector3; radius: number } => { + // A 3-point circle is undefined if it doesn't have 3 points :) + if (points.length !== 3) return undefined + + // y = (i/j)(x-h) + b + // i and j variables for the slopes + const i = [points[1].x - points[0].x, points[2].x - points[1].x] + const j = [points[1].y - points[0].y, points[2].y - points[1].y] + + // Our / threejs coordinate system affects this a lot. If you take this + // code into a different code base, you may have to adjust a/b to being + // -1/a/b, b/a, etc! In this case, a/-b did the trick. + const m = [i[0] / -j[0], i[1] / -j[1]] + + const h = [ + (points[0].x + points[1].x) / 2, + (points[1].x + points[2].x) / 2, + ] + const b = [ + (points[0].y + points[1].y) / 2, + (points[1].y + points[2].y) / 2, + ] + + // Algebraically derived + const x = (-m[0] * h[0] + b[0] - b[1] + m[1] * h[1]) / (m[1] - m[0]) + const y = m[0] * (x - h[0]) + b[0] + + const center = new Vector3(x, y, 0) + const radius = Math.sqrt((points[1].x - x) ** 2 + (points[1].y - y) ** 2) + + return { + center, + radius, + } + } + + // TO BE SHORT LIVED: unused function to draw the circle and lines. + // @ts-ignore + // eslint-disable-next-line + const createCircle3Point = (points: Vector2[]) => { + const circleParams = circle3Point(points) + + // A circle cannot be created for these points. + if (!circleParams) return + + const color = getThemeColorForThreeJs(sceneInfra._theme) + const geometryCircle = createArcGeometry({ + center: [circleParams.center.x, circleParams.center.y], + radius: circleParams.radius, + startAngle: 0, + endAngle: Math.PI * 2, + ccw: true, + isDashed: true, + scale, + }) + const materialCircle = new MeshBasicMaterial({ color }) + + if (groupCircle) groupOfDrafts.remove(groupCircle) + groupCircle = new Group() + groupCircle.renderOrder = 1 + + const meshCircle = new Mesh(geometryCircle, materialCircle) + meshCircle.userData = { type: CIRCLE_3_POINT_DRAFT_CIRCLE } + meshCircle.layers.set(SKETCH_LAYER) + meshCircle.position.set(circleParams.center.x, circleParams.center.y, 0) + meshCircle.scale.set(scale, scale, scale) + groupCircle.add(meshCircle) + + const geometryPolyLine = new BufferGeometry().setFromPoints([ + ...points, + points[0], + ]) + const materialPolyLine = new LineDashedMaterial({ + color, + scale, + dashSize: 6, + gapSize: 6, + }) + const meshPolyLine = new Line(geometryPolyLine, materialPolyLine) + meshPolyLine.computeLineDistances() + groupCircle.add(meshPolyLine) + + groupOfDrafts.add(groupCircle) + } + + // The target of our dragging + let target: Object3D | undefined = undefined + + const cleanupFn = () => { + this.scene.remove(groupOfDrafts) + } + + sceneInfra.setCallbacks({ + async onDrag(args) { + const draftPointsIntersected = args.intersects.filter( + (intersected) => + intersected.object.userData.type === CIRCLE_3_POINT_DRAFT_POINT + ) + + const firstPoint = draftPointsIntersected[0] + if (firstPoint && !target) { + target = firstPoint.object + } + + // The user was off their mark! Missed the object to select. + if (!target) return + + target.position.copy(args.intersectionPoint.threeD) + points.set(target.id, args.intersectionPoint.twoD) + }, + async onDragEnd(_args) { + target = undefined + }, + async onClick(args) { + if (points.size >= 3) return + if (!args.intersectionPoint) return + + const id = createPoint(args.intersectionPoint.threeD) + points.set(id, args.intersectionPoint.twoD) + + if (points.size < 2) return + + // We've now got 3 points, let's create our circle! + const astSnapshot = structuredClone(kclManager.ast) + let nodeQueryResult + nodeQueryResult = getNodeFromPath( + astSnapshot, + startSketchOnASTNodePath, + 'VariableDeclaration' + ) + if (err(nodeQueryResult)) return Promise.reject(nodeQueryResult) + const startSketchOnASTNode = nodeQueryResult + + const circleParams = circle3Point(Array.from(points.values())) + + if (!circleParams) return + + const kclCircle3Point = parse(`circle({ + center = [${circleParams.center.x}, ${circleParams.center.y}], + radius = ${circleParams.radius}, + }, %)`) + + if (err(kclCircle3Point) || kclCircle3Point.program === null) return + if (kclCircle3Point.program.body[0].type !== 'ExpressionStatement') + return + + const clonedStartSketchOnASTNode = structuredClone(startSketchOnASTNode) + startSketchOnASTNode.node.declaration.init = createPipeExpression([ + clonedStartSketchOnASTNode.node.declaration.init, + kclCircle3Point.program.body[0].expression, + ]) + + await kclManager.executeAstMock(astSnapshot) + await codeManager.updateEditorWithAstAndWriteToFile(astSnapshot) + + done() + }, + }) + + return cleanupFn + } setupDraftCircle = async ( sketchEntryNodePath: PathToNode, sketchNodePaths: PathToNode[], diff --git a/src/clientSideScene/sceneInfra.ts b/src/clientSideScene/sceneInfra.ts index 962120237..d7fadb26b 100644 --- a/src/clientSideScene/sceneInfra.ts +++ b/src/clientSideScene/sceneInfra.ts @@ -62,6 +62,8 @@ export const ARROWHEAD = 'arrowhead' export const SEGMENT_LENGTH_LABEL = 'segment-length-label' export const SEGMENT_LENGTH_LABEL_TEXT = 'segment-length-label-text' export const SEGMENT_LENGTH_LABEL_OFFSET_PX = 30 +export const CIRCLE_3_POINT_DRAFT_POINT = 'circle-3-point-draft-point' +export const CIRCLE_3_POINT_DRAFT_CIRCLE = 'circle-3-point-draft-circle' export interface OnMouseEnterLeaveArgs { selected: Object3D diff --git a/src/components/AstExplorer.tsx b/src/components/AstExplorer.tsx index 0837b592c..e029b2464 100644 --- a/src/components/AstExplorer.tsx +++ b/src/components/AstExplorer.tsx @@ -21,7 +21,8 @@ export function AstExplorer() { const node = _node return ( -
+
+ AST Explorer
filter out keys:
{['start', 'end', 'type'].map((key) => { @@ -58,7 +59,7 @@ export function AstExplorer() { />
-
+ ) } diff --git a/src/components/CommandBar/CommandBarHeader.tsx b/src/components/CommandBar/CommandBarHeader.tsx index 6987d0a42..09df9e747 100644 --- a/src/components/CommandBar/CommandBarHeader.tsx +++ b/src/components/CommandBar/CommandBarHeader.tsx @@ -194,7 +194,7 @@ function ReviewingButton() { autoFocus type="submit" form="review-form" - className="w-fit !p-0 rounded-sm border !border-primary hover:shadow" + className="w-fit !p-0 rounded-sm hover:shadow" iconStart={{ icon: 'checkmark', bgClassName: 'p-1 rounded-sm !bg-primary hover:brightness-110', @@ -212,7 +212,7 @@ function GatheringArgsButton() { Element="button" type="submit" form="arg-form" - className="w-fit !p-0 rounded-sm border !border-primary hover:shadow" + className="w-fit !p-0 rounded-sm hover:shadow" iconStart={{ icon: 'arrowRight', bgClassName: 'p-1 rounded-sm !bg-primary hover:brightness-110', diff --git a/src/components/CommandBar/CommandBarKclInput.tsx b/src/components/CommandBar/CommandBarKclInput.tsx index 54c47e4d4..875ba2999 100644 --- a/src/components/CommandBar/CommandBarKclInput.tsx +++ b/src/components/CommandBar/CommandBarKclInput.tsx @@ -1,5 +1,11 @@ -import { Completion } from '@codemirror/autocomplete' -import { EditorView, ViewUpdate } from '@codemirror/view' +import { + closeBrackets, + closeBracketsKeymap, + Completion, + completionKeymap, + completionStatus, +} from '@codemirror/autocomplete' +import { EditorView, keymap, ViewUpdate } from '@codemirror/view' import { CustomIcon } from 'components/CustomIcon' import { useCommandsContext } from 'hooks/useCommandsContext' import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' @@ -95,6 +101,7 @@ function CommandBarKclInput({ label: v.key, detail: String(roundOff(v.value as number)), })) + const varMentionsExtension = varMentions(varMentionData) const { setContainer } = useCodeMirror({ container: editorRef.current, @@ -112,23 +119,40 @@ function CommandBarKclInput({ ? getSystemTheme() : settings.context.app.theme.current, extensions: [ - EditorView.domEventHandlers({ - keydown: (event) => { - if (event.key === 'Backspace' && value === '') { - event.preventDefault() - stepBack() - } else if (event.key === 'Enter') { - event.preventDefault() - handleSubmit() - } - }, - }), - varMentions(varMentionData), + varMentionsExtension, EditorView.updateListener.of((vu: ViewUpdate) => { if (vu.docChanged) { setValue(vu.state.doc.toString()) } }), + closeBrackets(), + keymap.of([ + ...closeBracketsKeymap, + ...completionKeymap, + { + key: 'Enter', + run: (editor) => { + // Only submit if there is no completion active + if (completionStatus(editor.state) === null) { + handleSubmit() + return true + } else { + return false + } + }, + }, + { + key: 'Backspace', + run: (editor) => { + // Only step back if the editor is empty + if (editor.state.doc.toString() === '') { + stepBack() + return true + } + return false + }, + }, + ]), ], }) @@ -227,7 +251,7 @@ function CommandBarKclInput({ } }} onKeyUp={(e) => { - if (e.key === 'Enter') { + if (e.key === 'Enter' && canSubmit) { handleSubmit() } }} diff --git a/src/components/CommandBar/CommandBarTextareaInput.tsx b/src/components/CommandBar/CommandBarTextareaInput.tsx index 19a7c60cb..d5694f442 100644 --- a/src/components/CommandBar/CommandBarTextareaInput.tsx +++ b/src/components/CommandBar/CommandBarTextareaInput.tsx @@ -75,6 +75,7 @@ function CommandBarTextareaInput({ target.selectionStart = selectionStart + 1 target.selectionEnd = selectionStart + 1 } else if (event.key === 'Enter') { + event.preventDefault() formRef.current?.dispatchEvent( new Event('submit', { bubbles: true }) ) diff --git a/src/components/CustomIcon.tsx b/src/components/CustomIcon.tsx index be4b3795d..292aea011 100644 --- a/src/components/CustomIcon.tsx +++ b/src/components/CustomIcon.tsx @@ -392,6 +392,26 @@ const CustomIconMap = { /> ), + eyeOpen: ( + + + + ), + eyeCrossedOut: ( + + + + ), fillet: ( ), + hollow: ( + + + + ), horizontal: ( ), + import: ( + + + + ), 'intersection-offset': ( ), + model: ( + + + + ), move: ( ), + patternCircular2d: ( + + + + ), + patternCircular3d: ( + + + + + ), + patternLinear2d: ( + + + + ), + patternLinear3d: ( + + + + + ), person: ( { +interface LoadingProps extends React.PropsWithChildren { + className?: string +} + +const Loading = ({ children, className }: LoadingProps) => { const [error, setError] = useState(ConnectionError.Unset) useEffect(() => { @@ -64,7 +68,7 @@ const Loading = ({ children }: React.PropsWithChildren) => { return (
diff --git a/src/components/ModelingMachineProvider.tsx b/src/components/ModelingMachineProvider.tsx index c73e27c06..808f71e04 100644 --- a/src/components/ModelingMachineProvider.tsx +++ b/src/components/ModelingMachineProvider.tsx @@ -76,6 +76,7 @@ import { resultIsOk, } from 'lang/wasm' import { + artifactIsPlaneWithPaths, doesSketchPipeNeedSplitting, getNodeFromPath, isCursorInFunctionDefinition, @@ -84,12 +85,10 @@ import { import { exportFromEngine } from 'lib/exportFromEngine' import { Models } from '@kittycad/lib/dist/types/src' import toast from 'react-hot-toast' -import { EditorSelection, Transaction } from '@codemirror/state' import { useLoaderData, useNavigate, useSearchParams } from 'react-router-dom' import { letEngineAnimateAndSyncCamAfter } from 'clientSideScene/CameraControls' import { err, reportRejection, trap, reject } from 'lib/trap' import { useCommandsContext } from 'hooks/useCommandsContext' -import { modelingMachineEvent } from 'editor/manager' import { ExportIntent, EngineConnectionStateType, @@ -105,6 +104,7 @@ import { getPlaneFromArtifact, } from 'lang/std/artifactGraph' import { promptToEditFlow } from 'lib/promptToEdit' +import { kclEditorActor } from 'machines/kclEditorMachine' type MachineContext = { state: StateFrom @@ -314,22 +314,6 @@ export const ModelingMachineProvider = ({ null if (!setSelections) return {} - const dispatchSelection = (selection?: EditorSelection) => { - if (!selection) return // TODO less of hack for the below please - if (!editorManager.editorView) return - - setTimeout(() => { - if (!editorManager.editorView) return - editorManager.editorView.dispatch({ - selection, - annotations: [ - modelingMachineEvent, - Transaction.addToHistory.of(false), - ], - }) - }) - } - let selections: Selections = { graphSelections: [], otherSelections: [], @@ -369,7 +353,15 @@ export const ModelingMachineProvider = ({ } = handleSelectionBatch({ selections, }) - codeMirrorSelection && dispatchSelection(codeMirrorSelection) + if (codeMirrorSelection) { + kclEditorActor.send({ + type: 'setLastSelectionEvent', + data: { + codeMirrorSelection, + scrollIntoView: setSelections.scrollIntoView ?? false, + }, + }) + } engineEvents && engineEvents.forEach((event) => { // eslint-disable-next-line @typescript-eslint/no-floating-promises @@ -579,6 +571,9 @@ export const ModelingMachineProvider = ({ 'Selection is on face': ({ context: { selectionRanges }, event }) => { if (event.type !== 'Enter sketch') return false if (event.data?.forceNewSketch) return false + if (artifactIsPlaneWithPaths(selectionRanges)) { + return true + } if ( isCursorInFunctionDefinition( kclManager.ast, diff --git a/src/components/ModelingSidebar/ModelingPanes/FeatureTreePane.tsx b/src/components/ModelingSidebar/ModelingPanes/FeatureTreePane.tsx new file mode 100644 index 000000000..a349b2de8 --- /dev/null +++ b/src/components/ModelingSidebar/ModelingPanes/FeatureTreePane.tsx @@ -0,0 +1,381 @@ +import { Diagnostic } from '@codemirror/lint' +import { useMachine, useSelector } from '@xstate/react' +import { ContextMenu, ContextMenuItem } from 'components/ContextMenu' +import { CustomIcon, CustomIconName } from 'components/CustomIcon' +import Loading from 'components/Loading' +import { useModelingContext } from 'hooks/useModelingContext' +import { useKclContext } from 'lang/KclProvider' +import { codeRefFromRange, getArtifactFromRange } from 'lang/std/artifactGraph' +import { sourceRangeFromRust } from 'lang/wasm' +import { + filterOperations, + getOperationIcon, + getOperationLabel, +} from 'lib/operations' +import { editorManager, engineCommandManager, kclManager } from 'lib/singletons' +import { ComponentProps, useEffect, useMemo, useRef, useState } from 'react' +import { Operation } from 'wasm-lib/kcl/bindings/Operation' +import { Actor, Prop } from 'xstate' +import { featureTreeMachine } from 'machines/featureTreeMachine' +import { + editorIsMountedSelector, + kclEditorActor, + selectionEventSelector, +} from 'machines/kclEditorMachine' + +export const FeatureTreePane = () => { + const isEditorMounted = useSelector(kclEditorActor, editorIsMountedSelector) + const lastSelectionEvent = useSelector(kclEditorActor, selectionEventSelector) + const { send: modelingSend, state: modelingState } = useModelingContext() + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const [_featureTreeState, featureTreeSend] = useMachine( + featureTreeMachine.provide({ + guards: { + codePaneIsOpen: () => + modelingState.context.store.openPanes.includes('code') && + editorManager.editorView !== null, + }, + actions: { + openCodePane: () => { + modelingSend({ + type: 'Set context', + data: { + openPanes: [...modelingState.context.store.openPanes, 'code'], + }, + }) + }, + sendEditFlowStart: () => { + modelingSend({ type: 'Enter sketch' }) + }, + scrollToError: () => { + editorManager.scrollToFirstErrorDiagnosticIfExists() + }, + sendSelectionEvent: ({ context }) => { + if (!context.targetSourceRange) { + return + } + const artifact = context.targetSourceRange + ? getArtifactFromRange( + context.targetSourceRange, + engineCommandManager.artifactGraph + ) + : null + if (!artifact || !('codeRef' in artifact)) { + modelingSend({ + type: 'Set selection', + data: { + selectionType: 'singleCodeCursor', + selection: { + codeRef: codeRefFromRange( + context.targetSourceRange, + kclManager.ast + ), + }, + scrollIntoView: true, + }, + }) + } else { + modelingSend({ + type: 'Set selection', + data: { + selectionType: 'singleCodeCursor', + selection: { + artifact: artifact, + codeRef: codeRefFromRange( + context.targetSourceRange, + kclManager.ast + ), + }, + scrollIntoView: true, + }, + }) + } + }, + }, + }) + ) + // If there are parse errors we show the last successful operations + // and overlay a message on top of the pane + const parseErrors = kclManager.errors.filter((e) => e.kind !== 'engine') + + // If there are engine errors we show the successful operations + // Errors return an operation list, so use the longest one if there are multiple + const longestErrorOperationList = kclManager.errors.reduce((acc, error) => { + return error.operations && error.operations.length > acc.length + ? error.operations + : acc + }, [] as Operation[]) + + const unfilteredOperationList = !parseErrors.length + ? !kclManager.errors.length + ? kclManager.execState.operations + : longestErrorOperationList + : kclManager.lastSuccessfulOperations + + // We filter out operations that are not useful to show in the feature tree + const operationList = filterOperations(unfilteredOperationList) + + // Watch for changes in the open panes and send an event to the feature tree machine + useEffect(() => { + const codeOpen = modelingState.context.store.openPanes.includes('code') + if (codeOpen && isEditorMounted) { + featureTreeSend({ type: 'codePaneOpened' }) + } + }, [modelingState.context.store.openPanes, isEditorMounted]) + + // Watch for changes in the selection and send an event to the feature tree machine + useEffect(() => { + featureTreeSend({ type: 'selected' }) + }, [lastSelectionEvent]) + + function goToError() { + featureTreeSend({ type: 'goToError' }) + } + + return ( +
+
+ {kclManager.isExecuting ? ( + Building feature tree... + ) : ( + <> + {parseErrors.length > 0 && ( +
+
+

+ Errors found in KCL code. +
+ Please fix them before continuing. +

+ +
+
+ )} + {operationList.map((operation) => { + const key = `${operation.type}-${ + 'name' in operation ? operation.name : 'anonymous' + }-${ + 'sourceRange' in operation ? operation.sourceRange[0] : 'start' + }` + + return ( + + ) + })} + + )} +
+
+ ) +} + +export const visibilityMap = new Map() + +interface VisibilityToggleProps { + entityId: string + initialVisibility: boolean + onVisibilityChange?: () => void +} + +/** + * A button that toggles the visibility of an entity + * tied to an artifact in the feature tree. + * TODO: this is unimplemented and will be used for + * default planes after we fix them and add them to the artifact graph / feature tree + */ +const VisibilityToggle = (props: VisibilityToggleProps) => { + const [visible, setVisible] = useState(props.initialVisibility) + + function handleToggleVisible() { + setVisible(!visible) + visibilityMap.set(props.entityId, !visible) + props.onVisibilityChange?.() + } + + return ( + + ) +} + +/** + * More generic version of OperationListItem, + * to be used for default planes after we fix them and + * add them to the artifact graph / feature tree + */ +const OperationItemWrapper = ({ + icon, + name, + visibilityToggle, + menuItems, + errors, + className, + ...props +}: React.HTMLAttributes & { + icon: CustomIconName + name: string + visibilityToggle?: VisibilityToggleProps + menuItems?: ComponentProps['items'] + errors?: Diagnostic[] +}) => { + const menuRef = useRef(null) + + return ( +
+ + {errors && errors.length > 0 && ( + has error + )} + {visibilityToggle && } + {menuItems && ( + + )} +
+ ) +} + +/** + * A button with an icon, name, and context menu + * for an operation in the feature tree. + */ +const OperationItem = (props: { + item: Operation + send: Prop, 'send'> +}) => { + const kclContext = useKclContext() + const name = + 'name' in props.item && props.item.name !== null + ? getOperationLabel(props.item) + : 'anonymous' + const errors = useMemo(() => { + return kclContext.diagnostics.filter( + (diag) => + diag.severity === 'error' && + 'sourceRange' in props.item && + diag.from >= props.item.sourceRange[0] && + diag.to <= props.item.sourceRange[1] + ) + }, [kclContext.diagnostics.length]) + + function selectOperation() { + if (props.item.type === 'UserDefinedFunctionReturn') { + return + } + props.send({ + type: 'selectOperation', + data: { + targetSourceRange: sourceRangeFromRust(props.item.sourceRange), + }, + }) + } + + /** + * For now we can only enter the "edit" flow for the startSketchOn operation. + * TODO: https://github.com/KittyCAD/modeling-app/issues/4442 + */ + function enterEditFlow() { + if ( + props.item.type === 'StdLibCall' && + props.item.name === 'startSketchOn' + ) { + props.send({ + type: 'enterEditFlow', + data: { + targetSourceRange: sourceRangeFromRust(props.item.sourceRange), + }, + }) + } + } + + const menuItems = useMemo( + () => [ + { + if (props.item.type === 'UserDefinedFunctionReturn') { + return + } + props.send({ + type: 'goToKclSource', + data: { + targetSourceRange: sourceRangeFromRust(props.item.sourceRange), + }, + }) + }} + > + View KCL source code + , + ...(props.item.type === 'UserDefinedFunctionCall' + ? [ + { + if (props.item.type !== 'UserDefinedFunctionCall') { + return + } + const functionRange = props.item.functionSourceRange + // For some reason, the cursor goes to the end of the source + // range we select. So set the end equal to the beginning. + functionRange[1] = functionRange[0] + props.send({ + type: 'goToKclSource', + data: { + targetSourceRange: sourceRangeFromRust(functionRange), + }, + }) + }} + > + View function definition + , + ] + : []), + ], + [props.item, props.send] + ) + + return ( + + ) +} diff --git a/src/components/ModelingSidebar/ModelingPanes/KclEditorPane.tsx b/src/components/ModelingSidebar/ModelingPanes/KclEditorPane.tsx index ab4705fc0..5925aeb4b 100644 --- a/src/components/ModelingSidebar/ModelingPanes/KclEditorPane.tsx +++ b/src/components/ModelingSidebar/ModelingPanes/KclEditorPane.tsx @@ -1,7 +1,7 @@ import { TEST } from 'env' import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext' import { Themes, getSystemTheme } from 'lib/theme' -import { useMemo, useRef } from 'react' +import { useEffect, useMemo, useRef } from 'react' import { highlightSelectionMatches, searchKeymap } from '@codemirror/search' import { lineHighlightField } from 'editor/highlightextension' import { onMouseDragMakeANewNumber, onMouseDragRegex } from 'lib/utils' @@ -36,7 +36,7 @@ import interact from '@replit/codemirror-interact' import { kclManager, editorManager, codeManager } from 'lib/singletons' import { useHotkeys } from 'react-hotkeys-hook' import { useLspContext } from 'components/LspProvider' -import { Prec, EditorState, Extension } from '@codemirror/state' +import { Prec, EditorState, Extension, Transaction } from '@codemirror/state' import { closeBrackets, closeBracketsKeymap, @@ -44,6 +44,13 @@ import { } from '@codemirror/autocomplete' import CodeEditor from './CodeEditor' import { codeManagerHistoryCompartment } from 'lang/codeManager' +import { + editorIsMountedSelector, + kclEditorActor, + selectionEventSelector, +} from 'machines/kclEditorMachine' +import { useSelector } from '@xstate/react' +import { modelingMachineEvent } from 'editor/manager' export const editorShortcutMeta = { formatCode: { @@ -59,6 +66,8 @@ export const KclEditorPane = () => { const { settings: { context }, } = useSettingsAuthContext() + const lastSelectionEvent = useSelector(kclEditorActor, selectionEventSelector) + const editorIsMounted = useSelector(kclEditorActor, editorIsMountedSelector) const theme = context.app.theme.current === Themes.System ? getSystemTheme() @@ -76,6 +85,26 @@ export const KclEditorPane = () => { editorManager.redo() }) + // When this component unmounts, we need to tell the machine that the editor + useEffect(() => { + return () => { + kclEditorActor.send({ type: 'setKclEditorMounted', data: false }) + kclEditorActor.send({ type: 'setLastSelectionEvent', data: undefined }) + } + }, []) + + useEffect(() => { + if (!editorIsMounted || !lastSelectionEvent || !editorManager.editorView) { + return + } + + editorManager.editorView.dispatch({ + selection: lastSelectionEvent.codeMirrorSelection, + annotations: [modelingMachineEvent, Transaction.addToHistory.of(false)], + scrollIntoView: lastSelectionEvent.scrollIntoView, + }) + }, [editorIsMounted, lastSelectionEvent]) + const textWrapping = context.textEditor.textWrapping const cursorBlinking = context.textEditor.blinkingCursor // DO NOT ADD THE CODEMIRROR HOTKEYS HERE TO THE DEPENDENCY ARRAY @@ -174,6 +203,7 @@ export const KclEditorPane = () => { if (_editorView === null) return editorManager.setEditorView(_editorView) + kclEditorActor.send({ type: 'setKclEditorMounted', data: true }) // On first load of this component, ensure we show the current errors // in the editor. diff --git a/src/components/ModelingSidebar/ModelingPanes/index.tsx b/src/components/ModelingSidebar/ModelingPanes/index.tsx index 85e0def19..2cc846f84 100644 --- a/src/components/ModelingSidebar/ModelingPanes/index.tsx +++ b/src/components/ModelingSidebar/ModelingPanes/index.tsx @@ -17,12 +17,14 @@ import { useKclContext } from 'lang/KclProvider' import { editorManager } from 'lib/singletons' import { ContextFrom } from 'xstate' import { settingsMachine } from 'machines/settingsMachine' +import { FeatureTreePane } from './FeatureTreePane' export type SidebarType = | 'code' | 'debug' | 'export' | 'files' + | 'feature-tree' | 'logs' | 'lspMessages' | 'variables' @@ -69,6 +71,23 @@ export type SidebarAction = { // changes to be a spinning loader on loading. export const sidebarPanes: SidebarPane[] = [ + { + id: 'feature-tree', + icon: 'model', + keybinding: 'Shift + T', + sidebarName: 'Feature Tree', + Content: (props) => ( + <> + + + + ), + }, { id: 'code', icon: 'code', diff --git a/src/components/ModelingSidebar/ModelingSidebar.tsx b/src/components/ModelingSidebar/ModelingSidebar.tsx index 4c5083476..cefc17911 100644 --- a/src/components/ModelingSidebar/ModelingSidebar.tsx +++ b/src/components/ModelingSidebar/ModelingSidebar.tsx @@ -20,6 +20,7 @@ import { IconDefinition } from '@fortawesome/free-solid-svg-icons' import { useKclContext } from 'lang/KclProvider' import { MachineManagerContext } from 'components/MachineManagerProvider' import { onboardingPaths } from 'routes/Onboarding/paths' +import { SIDEBAR_BUTTON_SUFFIX } from 'lib/constants' interface ModelingSidebarProps { paneOpacity: '' | 'opacity-20' | 'opacity-40' @@ -302,7 +303,7 @@ function ModelingPaneButton({ className="group pointer-events-auto flex items-center justify-center border-transparent dark:border-transparent disabled:!border-transparent p-0 m-0 rounded-sm !outline-0 focus-visible:border-primary" onClick={onClick} name={paneConfig.sidebarName} - data-testid={paneConfig.id + '-pane-button'} + data-testid={paneConfig.id + SIDEBAR_BUTTON_SUFFIX} disabled={disabledText !== undefined} aria-disabled={disabledText !== undefined} {...props} diff --git a/src/components/ProjectSidebarMenu.tsx b/src/components/ProjectSidebarMenu.tsx index ac5662345..29e237dfe 100644 --- a/src/components/ProjectSidebarMenu.tsx +++ b/src/components/ProjectSidebarMenu.tsx @@ -210,7 +210,7 @@ function ProjectMenuPopover({ return (
diff --git a/src/components/Stream.tsx b/src/components/Stream.tsx index ad3e51f4a..795c9bf2b 100644 --- a/src/components/Stream.tsx +++ b/src/components/Stream.tsx @@ -218,20 +218,6 @@ export const Stream = () => { } }, [IDLE, streamState]) - /** - * Play the vid - */ - useEffect(() => { - if (!kclManager.isExecuting) { - setTimeout(() => { - // execute in the next event loop - videoRef.current?.play().catch((e) => { - console.warn('Video playing was prevented', e, videoRef.current) - }) - }) - } - }, [kclManager.isExecuting]) - useEffect(() => { if ( typeof window === 'undefined' || @@ -243,9 +229,15 @@ export const Stream = () => { // The browser complains if we try to load a new stream without pausing first. // Do not immediately play the stream! + // we instead use a setTimeout to play the stream in the next event loop try { videoRef.current.srcObject = mediaStream videoRef.current.pause() + setTimeout(() => { + videoRef.current?.play().catch((e) => { + console.warn('Video playing was prevented', e, videoRef.current) + }) + }) } catch (e) { console.warn('Attempted to pause stream while play was still loading', e) } diff --git a/src/components/ToastTextToCad.tsx b/src/components/ToastTextToCad.tsx index 52687996e..e9eedb478 100644 --- a/src/components/ToastTextToCad.tsx +++ b/src/components/ToastTextToCad.tsx @@ -470,6 +470,17 @@ export function ToastPromptToEditCadSuccess({ onClick={() => { sendTelemetry(modelId, 'accepted', token).catch(reportRejection) toast.dismiss(toastId) + + // Write new content to disk since they have accepted. + codeManager + .writeToFile() + .then(() => { + // no-op + }) + .catch((e) => { + console.error('Failed to save prompt-to-edit to disk') + console.error(e) + }) }} > Accept diff --git a/src/components/ToastUpdate.test.tsx b/src/components/ToastUpdate.test.tsx index 1c5cc8c30..8b141e701 100644 --- a/src/components/ToastUpdate.test.tsx +++ b/src/components/ToastUpdate.test.tsx @@ -150,4 +150,31 @@ describe('ToastUpdate tests', () => { expect(restartButton).toBeEnabled() expect(dismissButton).toBeEnabled() }) + + test('Happy path: external links render correctly', () => { + const releaseNotesWithBreakingChanges = ` +## Some markdown release notes +- [Zoo](https://zoo.dev/) +` + const onRestart = vi.fn() + const onDismiss = vi.fn() + + render( + + ) + + // Locators and other constants + const zooDev = screen.getByText('Zoo', { + selector: 'a', + }) + + expect(zooDev).toHaveAttribute('href', 'https://zoo.dev/') + expect(zooDev).toHaveAttribute('target', '_blank') + expect(zooDev).toHaveAttribute('onClick') + }) }) diff --git a/src/components/ToastUpdate.tsx b/src/components/ToastUpdate.tsx index 5a862529b..fbedc03fd 100644 --- a/src/components/ToastUpdate.tsx +++ b/src/components/ToastUpdate.tsx @@ -1,8 +1,9 @@ import toast from 'react-hot-toast' import { ActionButton } from './ActionButton' import { openExternalBrowserIfDesktop } from 'lib/openWindow' -import { Marked } from '@ts-stack/markdown' +import { escape, Marked, MarkedOptions, unescape } from '@ts-stack/markdown' import { getReleaseUrl } from 'routes/Settings' +import { SafeRenderer } from 'lib/markdown' export function ToastUpdate({ version, @@ -19,6 +20,14 @@ export function ToastUpdate({ ?.toLocaleLowerCase() .includes('breaking') + const markedOptions: MarkedOptions = { + gfm: true, + breaks: true, + sanitize: true, + unescape, + escape, + } + return (
@@ -58,9 +67,8 @@ export function ToastUpdate({ className="parsed-markdown py-2 px-4 mt-2 border-t border-chalkboard-30 dark:border-chalkboard-60 max-h-60 overflow-y-auto" dangerouslySetInnerHTML={{ __html: Marked.parse(releaseNotes, { - gfm: true, - breaks: true, - sanitize: true, + renderer: new SafeRenderer(markedOptions), + ...markedOptions, }), }} >
diff --git a/src/components/UpdaterModal.test.tsx b/src/components/UpdaterModal.test.tsx deleted file mode 100644 index fc9f156e6..000000000 --- a/src/components/UpdaterModal.test.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import { fireEvent, render, screen } from '@testing-library/react' -import { vi } from 'vitest' -import { UpdaterModal } from './UpdaterModal' - -describe('UpdaterModal tests', () => { - test('Renders the modal', () => { - const callback = vi.fn() - const data = { - version: '1.2.3', - date: '2021-22-23T21:22:23Z', - body: 'This is the body.', - } - - render( - {}} - onResolve={callback} - instanceId="" - open={false} - close={(res) => {}} - version={data.version} - date={data.date} - body={data.body} - /> - ) - - expect(screen.getByTestId('update-version')).toHaveTextContent(data.version) - - const updateButton = screen.getByTestId('update-button-update') - expect(updateButton).toBeEnabled() - fireEvent.click(updateButton) - expect(callback.mock.calls).toHaveLength(1) - expect(callback.mock.lastCall[0]).toEqual({ wantUpdate: true }) - - const cancelButton = screen.getByTestId('update-button-cancel') - expect(cancelButton).toBeEnabled() - fireEvent.click(cancelButton) - expect(callback.mock.calls).toHaveLength(2) - expect(callback.mock.lastCall[0]).toEqual({ wantUpdate: false }) - }) -}) diff --git a/src/components/UpdaterModal.tsx b/src/components/UpdaterModal.tsx deleted file mode 100644 index 8742851e1..000000000 --- a/src/components/UpdaterModal.tsx +++ /dev/null @@ -1,87 +0,0 @@ -import { create, InstanceProps } from 'react-modal-promise' -import { ActionButton } from './ActionButton' -import { Logo } from './Logo' -import { Marked } from '@ts-stack/markdown' - -type ModalResolve = { - wantUpdate: boolean -} - -type ModalReject = boolean - -type UpdaterModalProps = InstanceProps & { - version: string - date?: string - body?: string -} - -export const createUpdaterModal = create< - UpdaterModalProps, - ModalResolve, - ModalReject -> - -export const UpdaterModal = ({ - onResolve, - version, - date, - body, -}: UpdaterModalProps) => ( -
-
-
-

New version available!

- -
-
- - v{version} - - Published on {date} -
- {/* TODO: fix list bullets */} - {body && ( -
- )} -
- onResolve({ wantUpdate: false })} - iconStart={{ - icon: 'close', - bgClassName: 'bg-destroy-80', - iconClassName: 'text-destroy-20 group-hover:text-destroy-10', - }} - className="hover:border-destroy-40 hover:bg-destroy-10/50 dark:hover:bg-destroy-80/50" - data-testid="update-button-cancel" - > - Not now - - onResolve({ wantUpdate: true })} - iconStart={{ - icon: 'arrowRight', - bgClassName: 'dark:bg-chalkboard-80', - }} - className="dark:hover:bg-chalkboard-80/50" - data-testid="update-button-update" - > - Update - -
-
-
-) diff --git a/src/components/UserSidebarMenu.tsx b/src/components/UserSidebarMenu.tsx index 711cf8f9a..7a322c462 100644 --- a/src/components/UserSidebarMenu.tsx +++ b/src/components/UserSidebarMenu.tsx @@ -168,7 +168,7 @@ const UserSidebarMenu = ({ user }: { user?: User }) => { return (
@@ -240,7 +240,7 @@ const UserSidebarMenu = ({ user }: { user?: User }) => {
  • { close() }} diff --git a/src/editor/manager.ts b/src/editor/manager.ts index 64304e495..2e8de8637 100644 --- a/src/editor/manager.ts +++ b/src/editor/manager.ts @@ -14,6 +14,7 @@ import { } from '@codemirror/lint' import { StateFrom } from 'xstate' import { markOnce } from 'lib/performance' +import { kclEditorActor } from 'machines/kclEditorMachine' declare global { interface Window { @@ -39,6 +40,7 @@ export const setDiagnosticsEvent = setDiagnosticsAnnotation.of(true) export default class EditorManager { private _copilotEnabled: boolean = true + private _isAllTextSelected: boolean = false private _isShiftDown: boolean = false private _selectionRanges: Selections = { otherSelections: [], @@ -70,6 +72,7 @@ export default class EditorManager { setEditorView(editorView: EditorView) { this._editorView = editorView + kclEditorActor.send({ type: 'setKclEditorMounted', data: true }) this.overrideTreeHighlighterUpdateForPerformanceTracking() } @@ -115,6 +118,10 @@ export default class EditorManager { }) } + get isAllTextSelected() { + return this._isAllTextSelected + } + get editorView(): EditorView | null { return this._editorView } @@ -127,6 +134,21 @@ export default class EditorManager { this._isShiftDown = isShiftDown } + private selectionsWithSafeEnds( + selection: Array + ): Array<[number, number]> { + if (!this._editorView) { + return selection.map((s): [number, number] => { + return [s[0], s[1]] + }) + } + + return selection.map((s): [number, number] => { + const safeEnd = Math.min(s[1], this._editorView?.state.doc.length || s[1]) + return [s[0], safeEnd] + }) + } + set selectionRanges(selectionRanges: Selections) { this._selectionRanges = selectionRanges } @@ -152,14 +174,9 @@ export default class EditorManager { } setHighlightRange(range: Array): void { - this._highlightRange = range.map((s): [number, number] => { - return [s[0], s[1]] - }) + const selectionsWithSafeEnds = this.selectionsWithSafeEnds(range) - const selectionsWithSafeEnds = range.map((s): [number, number] => { - const safeEnd = Math.min(s[1], this._editorView?.state.doc.length || s[1]) - return [s[0], safeEnd] - }) + this._highlightRange = selectionsWithSafeEnds if (this._editorView) { this._editorView.dispatch({ @@ -207,6 +224,32 @@ export default class EditorManager { }) } + /** + * Scroll to the first selection in the editor. + */ + scrollToSelection() { + if (!this._editorView || !this._selectionRanges.graphSelections[0]) return + + const firstSelection = this._selectionRanges.graphSelections[0] + + this._editorView.focus() + this._editorView.dispatch({ + effects: [ + EditorView.scrollIntoView( + EditorSelection.range( + firstSelection.codeRef.range[0], + firstSelection.codeRef.range[1] + ), + { y: 'center' } + ), + ], + annotations: [ + updateOutsideEditorEvent, + Transaction.addToHistory.of(false), + ], + }) + } + scrollToFirstErrorDiagnosticIfExists() { if (!this._editorView) return @@ -274,20 +317,20 @@ export default class EditorManager { } let codeBasedSelections = [] for (const selection of selections.graphSelections) { + const safeEnd = Math.min( + selection.codeRef.range[1], + this._editorView?.state.doc.length || selection.codeRef.range[1] + ) codeBasedSelections.push( - EditorSelection.range( - selection.codeRef.range[0], - selection.codeRef.range[1] - ) + EditorSelection.range(selection.codeRef.range[0], safeEnd) ) } - codeBasedSelections.push( - EditorSelection.cursor( - selections.graphSelections[selections.graphSelections.length - 1] - .codeRef.range[1] - ) - ) + const end = + selections.graphSelections[selections.graphSelections.length - 1].codeRef + .range[1] + const safeEnd = Math.min(end, this._editorView?.state.doc.length || end) + codeBasedSelections.push(EditorSelection.cursor(safeEnd)) if (!this._editorView) { return @@ -324,6 +367,16 @@ export default class EditorManager { return } + this._isAllTextSelected = viewUpdate.state.selection.ranges.some( + (selection) => { + return ( + // The user will need to select the empty new lines as well to be considered all of the text. + // CTRL+A is the best way to select all the text + selection.from === 0 && selection.to === viewUpdate.state.doc.length + ) + } + ) + const eventInfo = processCodeMirrorRanges({ codeMirrorRanges: viewUpdate.state.selection.ranges, selectionRanges: this._selectionRanges, diff --git a/src/editor/plugins/lsp/kcl/language.ts b/src/editor/plugins/lsp/kcl/language.ts index bd92beb3a..d1884b498 100644 --- a/src/editor/plugins/lsp/kcl/language.ts +++ b/src/editor/plugins/lsp/kcl/language.ts @@ -1,23 +1,14 @@ // Code mirror language implementation for kcl. -import { - LRLanguage, - LanguageSupport, - indentNodeProp, - continuedIndent, - delimitedIndent, - foldNodeProp, - foldInside, -} from '@codemirror/language' +import { LanguageSupport } from '@codemirror/language' import { LanguageServerClient, LanguageServerPlugin, } from '@kittycad/codemirror-lsp-client' import { kclPlugin } from '.' import type * as LSP from 'vscode-languageserver-protocol' -// @ts-ignore: No types available -import { parser } from './kcl.grammar' import { colorPicker } from './colors' +import { KclLanguage } from '@kittycad/codemirror-lang-kcl' export interface LanguageOptions { workspaceFolders: LSP.WorkspaceFolder[] @@ -29,31 +20,6 @@ export interface LanguageOptions { ) => void } -export const KclLanguage = LRLanguage.define({ - name: 'kcl', - parser: parser.configure({ - props: [ - indentNodeProp.add({ - Body: delimitedIndent({ closing: '}' }), - BlockComment: () => null, - 'Statement Property': continuedIndent({ except: /^{/ }), - }), - foldNodeProp.add({ - 'Body ArrayExpression ObjectExpression': foldInside, - BlockComment(tree) { - return { from: tree.from + 2, to: tree.to - 2 } - }, - PipeExpression(tree) { - return { from: tree.firstChild!.to, to: tree.to } - }, - }), - ], - }), - languageData: { - commentTokens: { line: '//', block: { open: '/*', close: '*/' } }, - }, -}) - export function kcl(options: LanguageOptions) { return new LanguageSupport(KclLanguage, [ colorPicker, diff --git a/src/index.css b/src/index.css index 654abf566..90e9e9a84 100644 --- a/src/index.css +++ b/src/index.css @@ -85,7 +85,8 @@ textarea, } button { - @apply border border-chalkboard-30 m-0.5 px-3 rounded text-xs focus-visible:ring-primary; + @apply border border-chalkboard-30 m-0.5 px-3 rounded text-xs; + @apply focus-visible:outline-chalkboard-100; } button:hover { @@ -93,7 +94,7 @@ button:hover { } .dark button { - @apply border-chalkboard-70 focus-visible:ring-primary/50; + @apply border-chalkboard-70 focus-visible:outline-chalkboard-10; } .dark button:hover { @@ -311,6 +312,19 @@ code { @apply bg-chalkboard-20 text-chalkboard-80; @apply dark:bg-chalkboard-80 dark:text-chalkboard-30; } + + button.reset { + @apply bg-transparent border-transparent m-0 p-0 rounded-none text-base; + } + + button.reset:hover { + @apply bg-transparent border-transparent; + } + + /* Add an outline that matches the app foreground (or text) color */ + .outline-appForeground { + @apply outline-chalkboard-100 dark:outline-chalkboard-10; + } } #code-mirror-override .cm-scroller, diff --git a/src/index.tsx b/src/index.tsx index 12d1c361a..907961a59 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -10,8 +10,11 @@ import { AppStreamProvider } from 'AppState' import { ToastUpdate } from 'components/ToastUpdate' import { markOnce } from 'lib/performance' import { AUTO_UPDATER_TOAST_ID } from 'lib/constants' +import { initializeWindowExceptionHandler } from 'lib/exceptions' markOnce('code/willAuth') +initializeWindowExceptionHandler() + // uncomment for xstate inspector // import { DEV } from 'env' // import { inspect } from '@xstate/inspect' diff --git a/src/lang/KclProvider.tsx b/src/lang/KclProvider.tsx index f2b6fb5aa..c2a6b3a45 100644 --- a/src/lang/KclProvider.tsx +++ b/src/lang/KclProvider.tsx @@ -3,6 +3,7 @@ import { type IndexLoaderData } from 'lib/types' import { useLoaderData } from 'react-router-dom' import { codeManager, kclManager } from 'lib/singletons' import { Diagnostic } from '@codemirror/lint' +import { KCLError } from './errors' const KclContext = createContext({ code: codeManager?.code || '', @@ -11,6 +12,7 @@ const KclContext = createContext({ isExecuting: kclManager?.isExecuting, diagnostics: kclManager?.diagnostics, logs: kclManager?.logs, + errors: kclManager?.errors, wasmInitFailed: kclManager?.wasmInitFailed, }) @@ -32,7 +34,8 @@ export function KclContextProvider({ const [programMemory, setProgramMemory] = useState(kclManager.programMemory) const [ast, setAst] = useState(kclManager.ast) const [isExecuting, setIsExecuting] = useState(false) - const [diagnostics, setErrors] = useState([]) + const [diagnostics, setDiagnostics] = useState([]) + const [errors, setErrors] = useState([]) const [logs, setLogs] = useState([]) const [wasmInitFailed, setWasmInitFailed] = useState(false) @@ -44,7 +47,8 @@ export function KclContextProvider({ setProgramMemory, setAst, setLogs, - setKclErrors: setErrors, + setErrors, + setDiagnostics, setIsExecuting, setWasmInitFailed, }) @@ -59,6 +63,7 @@ export function KclContextProvider({ isExecuting, diagnostics, logs, + errors, wasmInitFailed, }} > diff --git a/src/lang/KclSingleton.ts b/src/lang/KclSingleton.ts index e5fd29258..359be0a8d 100644 --- a/src/lang/KclSingleton.ts +++ b/src/lang/KclSingleton.ts @@ -32,6 +32,7 @@ import { EntityType_type, ModelingCmdReq_type, } from '@kittycad/lib/dist/types/src/models' +import { Operation } from 'wasm-lib/kcl/bindings/Operation' interface ExecuteArgs { ast?: Node @@ -58,7 +59,9 @@ export class KclManager { private _execState: ExecState = emptyExecState() private _programMemory: ProgramMemory = ProgramMemory.empty() lastSuccessfulProgramMemory: ProgramMemory = ProgramMemory.empty() + lastSuccessfulOperations: Operation[] = [] private _logs: string[] = [] + private _errors: KCLError[] = [] private _diagnostics: Diagnostic[] = [] private _isExecuting = false private _executeIsStale: ExecuteArgs | null = null @@ -72,7 +75,8 @@ export class KclManager { private _astCallBack: (arg: Node) => void = () => {} private _programMemoryCallBack: (arg: ProgramMemory) => void = () => {} private _logsCallBack: (arg: string[]) => void = () => {} - private _kclErrorsCallBack: (errors: Diagnostic[]) => void = () => {} + private _kclErrorsCallBack: (errors: KCLError[]) => void = () => {} + private _diagnosticsCallback: (errors: Diagnostic[]) => void = () => {} private _wasmInitFailedCallback: (arg: boolean) => void = () => {} private _executeCallback: () => void = () => {} @@ -106,6 +110,13 @@ export class KclManager { return this._execState } + get errors() { + return this._errors + } + set errors(errors) { + this._errors = errors + this._kclErrorsCallBack(errors) + } get logs() { return this._logs } @@ -135,7 +146,7 @@ export class KclManager { setDiagnosticsForCurrentErrors() { editorManager?.setDiagnostics(this.diagnostics) - this._kclErrorsCallBack(this.diagnostics) + this._diagnosticsCallback(this.diagnostics) } get isExecuting() { @@ -188,21 +199,24 @@ export class KclManager { setProgramMemory, setAst, setLogs, - setKclErrors, + setErrors, + setDiagnostics, setIsExecuting, setWasmInitFailed, }: { setProgramMemory: (arg: ProgramMemory) => void setAst: (arg: Node) => void setLogs: (arg: string[]) => void - setKclErrors: (errors: Diagnostic[]) => void + setErrors: (errors: KCLError[]) => void + setDiagnostics: (errors: Diagnostic[]) => void setIsExecuting: (arg: boolean) => void setWasmInitFailed: (arg: boolean) => void }) { this._programMemoryCallBack = setProgramMemory this._astCallBack = setAst this._logsCallBack = setLogs - this._kclErrorsCallBack = setKclErrors + this._kclErrorsCallBack = setErrors + this._diagnosticsCallback = setDiagnostics this._isExecutingCallback = setIsExecuting this._wasmInitFailedCallback = setWasmInitFailed } @@ -352,16 +366,19 @@ export class KclManager { } this.logs = logs + this.errors = errors // Do not add the errors since the program was interrupted and the error is not a real KCL error this.addDiagnostics(isInterrupted ? [] : kclErrorsToDiagnostics(errors)) this.execState = execState if (!errors.length) { this.lastSuccessfulProgramMemory = execState.memory + this.lastSuccessfulOperations = execState.operations } this.ast = { ...ast } // updateArtifactGraph relies on updated executeState/programMemory await this.engineCommandManager.updateArtifactGraph( this.ast, + execState.artifactCommands, execState.artifacts ) this._executeCallback() @@ -375,6 +392,24 @@ export class KclManager { this._cancelTokens.delete(currentExecutionId) markOnce('code/endExecuteAst') } + + /** + * This cleanup function is external and internal to the KclSingleton class. + * Since the WASM runtime can panic and the error cannot be caught in executeAst + * we need a global exception handler in exceptions.ts + * This file will interface with this cleanup as if it caught the original error + * to properly restore the TS application state. + */ + executeAstCleanUp() { + this.isExecuting = false + this.executeIsStale = null + this.engineCommandManager.addCommandLog({ + type: 'execution-done', + data: null, + }) + markOnce('code/endExecuteAst') + } + // NOTE: this always updates the code state and editor. // DO NOT CALL THIS from codemirror ever. async executeAstMock( @@ -413,6 +448,7 @@ export class KclManager { this._programMemory = execState.memory if (!errors.length) { this.lastSuccessfulProgramMemory = execState.memory + this.lastSuccessfulOperations = execState.operations } if (updates !== 'artifactRanges') return @@ -449,13 +485,42 @@ export class KclManager { } async executeCode(zoomToFit?: boolean): Promise { const ast = await this.safeParse(codeManager.code) + if (!ast) { this.clearAst() return } + + zoomToFit = this.tryToZoomToFitOnCodeUpdate(ast, zoomToFit) + this.ast = { ...ast } return this.executeAst({ zoomToFit }) } + /** + * This will override the zoom to fit to zoom into the model if the previous AST was empty. + * Workflows this improves, + * When someone comments the entire file then uncomments the entire file it zooms to the model + * When someone CRTL+A and deletes the code then adds the code back it zooms to the model + * When someone CRTL+A and copies new code into the editor it zooms to the model + */ + tryToZoomToFitOnCodeUpdate( + ast: Node, + zoomToFit: boolean | undefined + ) { + const isAstEmpty = this._isAstEmpty(this._ast) + const isRequestedAstEmpty = this._isAstEmpty(ast) + + // If the AST went from empty to not empty or + // If the user has all of the content selected and they copy new code in + if ( + (isAstEmpty && !isRequestedAstEmpty) || + editorManager.isAllTextSelected + ) { + return true + } + + return zoomToFit + } async format() { const originalCode = codeManager.code const ast = await this.safeParse(originalCode) diff --git a/src/lang/abstractSyntaxTree.test.ts b/src/lang/abstractSyntaxTree.test.ts index 1f19e9242..41f8e15a0 100644 --- a/src/lang/abstractSyntaxTree.test.ts +++ b/src/lang/abstractSyntaxTree.test.ts @@ -47,7 +47,7 @@ describe('parsing errors', () => { const result = parse(code) if (err(result)) throw result const error = result.errors[0] - expect(error.message).toBe('Unexpected token: (') - expect(error.sourceRange).toEqual([27, 28, 0]) + expect(error.message).toBe('Array is missing a closing bracket(`]`)') + expect(error.sourceRange).toEqual([28, 29, 0]) }) }) diff --git a/src/lang/errors.test.ts b/src/lang/errors.test.ts index 3ce2e9f69..a26b3849b 100644 --- a/src/lang/errors.test.ts +++ b/src/lang/errors.test.ts @@ -10,6 +10,7 @@ describe('test kclErrToDiagnostic', () => { msg: 'Semantic error', sourceRange: [0, 1, true], operations: [], + artifactCommands: [], }, { name: '', @@ -18,6 +19,7 @@ describe('test kclErrToDiagnostic', () => { msg: 'Type error', sourceRange: [4, 5, true], operations: [], + artifactCommands: [], }, ] const diagnostics = kclErrorsToDiagnostics(errors) diff --git a/src/lang/errors.ts b/src/lang/errors.ts index 0ba0d83d1..a85c8b592 100644 --- a/src/lang/errors.ts +++ b/src/lang/errors.ts @@ -5,7 +5,7 @@ import { posToOffset } from '@kittycad/codemirror-lsp-client' import { Diagnostic as LspDiagnostic } from 'vscode-languageserver-protocol' import { Text } from '@codemirror/state' import { EditorView } from 'codemirror' -import { SourceRange } from 'lang/wasm' +import { ArtifactCommand, SourceRange } from 'lang/wasm' import { Operation } from 'wasm-lib/kcl/bindings/Operation' type ExtractKind = T extends { kind: infer K } ? K : never @@ -14,86 +14,141 @@ export class KCLError extends Error { sourceRange: SourceRange msg: string operations: Operation[] + artifactCommands: ArtifactCommand[] constructor( kind: ExtractKind | 'name', msg: string, sourceRange: SourceRange, - operations: Operation[] + operations: Operation[], + artifactCommands: ArtifactCommand[] ) { super() this.kind = kind this.msg = msg this.sourceRange = sourceRange this.operations = operations + this.artifactCommands = artifactCommands Object.setPrototypeOf(this, KCLError.prototype) } } export class KCLLexicalError extends KCLError { - constructor(msg: string, sourceRange: SourceRange, operations: Operation[]) { - super('lexical', msg, sourceRange, operations) + constructor( + msg: string, + sourceRange: SourceRange, + operations: Operation[], + artifactCommands: ArtifactCommand[] + ) { + super('lexical', msg, sourceRange, operations, artifactCommands) Object.setPrototypeOf(this, KCLSyntaxError.prototype) } } export class KCLInternalError extends KCLError { - constructor(msg: string, sourceRange: SourceRange, operations: Operation[]) { - super('internal', msg, sourceRange, operations) + constructor( + msg: string, + sourceRange: SourceRange, + operations: Operation[], + artifactCommands: ArtifactCommand[] + ) { + super('internal', msg, sourceRange, operations, artifactCommands) Object.setPrototypeOf(this, KCLSyntaxError.prototype) } } export class KCLSyntaxError extends KCLError { - constructor(msg: string, sourceRange: SourceRange, operations: Operation[]) { - super('syntax', msg, sourceRange, operations) + constructor( + msg: string, + sourceRange: SourceRange, + operations: Operation[], + artifactCommands: ArtifactCommand[] + ) { + super('syntax', msg, sourceRange, operations, artifactCommands) Object.setPrototypeOf(this, KCLSyntaxError.prototype) } } export class KCLSemanticError extends KCLError { - constructor(msg: string, sourceRange: SourceRange, operations: Operation[]) { - super('semantic', msg, sourceRange, operations) + constructor( + msg: string, + sourceRange: SourceRange, + operations: Operation[], + artifactCommands: ArtifactCommand[] + ) { + super('semantic', msg, sourceRange, operations, artifactCommands) Object.setPrototypeOf(this, KCLSemanticError.prototype) } } export class KCLTypeError extends KCLError { - constructor(msg: string, sourceRange: SourceRange, operations: Operation[]) { - super('type', msg, sourceRange, operations) + constructor( + msg: string, + sourceRange: SourceRange, + operations: Operation[], + artifactCommands: ArtifactCommand[] + ) { + super('type', msg, sourceRange, operations, artifactCommands) Object.setPrototypeOf(this, KCLTypeError.prototype) } } export class KCLUnimplementedError extends KCLError { - constructor(msg: string, sourceRange: SourceRange, operations: Operation[]) { - super('unimplemented', msg, sourceRange, operations) + constructor( + msg: string, + sourceRange: SourceRange, + operations: Operation[], + artifactCommands: ArtifactCommand[] + ) { + super('unimplemented', msg, sourceRange, operations, artifactCommands) Object.setPrototypeOf(this, KCLUnimplementedError.prototype) } } export class KCLUnexpectedError extends KCLError { - constructor(msg: string, sourceRange: SourceRange, operations: Operation[]) { - super('unexpected', msg, sourceRange, operations) + constructor( + msg: string, + sourceRange: SourceRange, + operations: Operation[], + artifactCommands: ArtifactCommand[] + ) { + super('unexpected', msg, sourceRange, operations, artifactCommands) Object.setPrototypeOf(this, KCLUnexpectedError.prototype) } } export class KCLValueAlreadyDefined extends KCLError { - constructor(key: string, sourceRange: SourceRange, operations: Operation[]) { + constructor( + key: string, + sourceRange: SourceRange, + operations: Operation[], + artifactCommands: ArtifactCommand[] + ) { super( 'name', `Key ${key} was already defined elsewhere`, sourceRange, - operations + operations, + artifactCommands ) Object.setPrototypeOf(this, KCLValueAlreadyDefined.prototype) } } export class KCLUndefinedValueError extends KCLError { - constructor(key: string, sourceRange: SourceRange, operations: Operation[]) { - super('name', `Key ${key} has not been defined`, sourceRange, operations) + constructor( + key: string, + sourceRange: SourceRange, + operations: Operation[], + artifactCommands: ArtifactCommand[] + ) { + super( + 'name', + `Key ${key} has not been defined`, + sourceRange, + operations, + artifactCommands + ) Object.setPrototypeOf(this, KCLUndefinedValueError.prototype) } } @@ -113,6 +168,7 @@ export function lspDiagnosticsToKclErrors( 'unexpected', message, [posToOffset(doc, range.start)!, posToOffset(doc, range.end)!, true], + [], [] ) ) diff --git a/src/lang/executor.test.ts b/src/lang/executor.test.ts index c932ec4b4..32a30a532 100644 --- a/src/lang/executor.test.ts +++ b/src/lang/executor.test.ts @@ -481,6 +481,7 @@ const theExtrude = startSketchOn('XY') 'undefined_value', 'memory item key `myVarZ` is not defined', [129, 135, true], + [], [] ) ) diff --git a/src/lang/modifyAst.test.ts b/src/lang/modifyAst.test.ts index aa067e9dd..46ab6c291 100644 --- a/src/lang/modifyAst.test.ts +++ b/src/lang/modifyAst.test.ts @@ -807,9 +807,9 @@ sketch001 = startSketchOn('XZ') sketch002 = startSketchOn({ plane = { origin = { x = 1, y = 2, z = 3 }, - x_axis = { x = 4, y = 5, z = 6 }, - y_axis = { x = 7, y = 8, z = 9 }, - z_axis = { x = 10, y = 11, z = 12 } + xAxis = { x = 4, y = 5, z = 6 }, + yAxis = { x = 7, y = 8, z = 9 }, + zAxis = { x = 10, y = 11, z = 12 } } }) |> startProfileAt([-12.55, 2.89], %) @@ -863,9 +863,9 @@ sketch001 = startSketchOn('XZ') sketch002 = startSketchOn({ plane = { origin = { x = 1, y = 2, z = 3 }, - x_axis = { x = 4, y = 5, z = 6 }, - y_axis = { x = 7, y = 8, z = 9 }, - z_axis = { x = 10, y = 11, z = 12 } + xAxis = { x = 4, y = 5, z = 6 }, + yAxis = { x = 7, y = 8, z = 9 }, + zAxis = { x = 10, y = 11, z = 12 } } }) |> startProfileAt([-12.55, 2.89], %) diff --git a/src/lang/modifyAst.ts b/src/lang/modifyAst.ts index e770073cf..e90561515 100644 --- a/src/lang/modifyAst.ts +++ b/src/lang/modifyAst.ts @@ -1137,31 +1137,43 @@ export async function deleteFromSelection( ) if (err(varDec)) return varDec if ( - (selection?.artifact?.type === 'wall' || + ((selection?.artifact?.type === 'wall' || selection?.artifact?.type === 'cap') && - varDec.node.init.type === 'PipeExpression' + varDec.node.init.type === 'PipeExpression') || + selection.artifact?.type === 'sweep' ) { - const varDecName = varDec.node.id.name - let pathToNode: PathToNode | null = null let extrudeNameToDelete = '' - traverse(astClone, { - enter: (node, path) => { - if (node.type === 'VariableDeclaration') { - const dec = node.declaration - if ( - dec.init.type === 'CallExpression' && - (dec.init.callee.name === 'extrude' || - dec.init.callee.name === 'revolve') && - dec.init.arguments?.[1].type === 'Identifier' && - dec.init.arguments?.[1].name === varDecName - ) { - pathToNode = path - extrudeNameToDelete = dec.id.name + let pathToNode: PathToNode | null = null + if (selection.artifact?.type !== 'sweep') { + const varDecName = varDec.node.id.name + traverse(astClone, { + enter: (node, path) => { + if (node.type === 'VariableDeclaration') { + const dec = node.declaration + if ( + dec.init.type === 'CallExpression' && + (dec.init.callee.name === 'extrude' || + dec.init.callee.name === 'revolve') && + dec.init.arguments?.[1].type === 'Identifier' && + dec.init.arguments?.[1].name === varDecName + ) { + pathToNode = path + extrudeNameToDelete = dec.id.name + } } - } - }, - }) - if (!pathToNode) return new Error('Could not find extrude variable') + }, + }) + if (!pathToNode) return new Error('Could not find extrude variable') + } else { + pathToNode = selection.codeRef.pathToNode + const extrudeVarDec = getNodeFromPath( + astClone, + pathToNode, + 'VariableDeclarator' + ) + if (err(extrudeVarDec)) return extrudeVarDec + extrudeNameToDelete = extrudeVarDec.node.id.name + } const expressionIndex = pathToNode[1][0] as number astClone.body.splice(expressionIndex, 1) @@ -1257,17 +1269,17 @@ export async function deleteFromSelection( y: roundLiteral(faceDetails.origin.y), z: roundLiteral(faceDetails.origin.z), }), - x_axis: createObjectExpression({ + xAxis: createObjectExpression({ x: roundLiteral(faceDetails.x_axis.x), y: roundLiteral(faceDetails.x_axis.y), z: roundLiteral(faceDetails.x_axis.z), }), - y_axis: createObjectExpression({ + yAxis: createObjectExpression({ x: roundLiteral(faceDetails.y_axis.x), y: roundLiteral(faceDetails.y_axis.y), z: roundLiteral(faceDetails.y_axis.z), }), - z_axis: createObjectExpression({ + zAxis: createObjectExpression({ x: roundLiteral(faceDetails.z_axis.x), y: roundLiteral(faceDetails.z_axis.y), z: roundLiteral(faceDetails.z_axis.z), diff --git a/src/lang/modifyAst/addEdgeTreatment.ts b/src/lang/modifyAst/addEdgeTreatment.ts index baa0f702f..ccabe905b 100644 --- a/src/lang/modifyAst/addEdgeTreatment.ts +++ b/src/lang/modifyAst/addEdgeTreatment.ts @@ -61,19 +61,18 @@ export interface FilletParameters { export type EdgeTreatmentParameters = ChamferParameters | FilletParameters // Apply Edge Treatment (Fillet or Chamfer) To Selection -export function applyEdgeTreatmentToSelection( +export async function applyEdgeTreatmentToSelection( ast: Node, selection: Selections, parameters: EdgeTreatmentParameters -): void | Error { +): Promise { // 1. clone and modify with edge treatment and tag const result = modifyAstWithEdgeTreatmentAndTag(ast, selection, parameters) if (err(result)) return result const { modifiedAst, pathToEdgeTreatmentNode } = result // 2. update ast - // eslint-disable-next-line @typescript-eslint/no-floating-promises - updateAstAndFocus(modifiedAst, pathToEdgeTreatmentNode) + await updateAstAndFocus(modifiedAst, pathToEdgeTreatmentNode) } export function modifyAstWithEdgeTreatmentAndTag( @@ -291,7 +290,7 @@ export function getPathToExtrudeForSegmentSelection( async function updateAstAndFocus( modifiedAst: Node, pathToEdgeTreatmentNode: Array -) { +): Promise { const updatedAst = await kclManager.updateAst(modifiedAst, true, { focusPath: pathToEdgeTreatmentNode, }) diff --git a/src/lang/queryAst.ts b/src/lang/queryAst.ts index 37bcf8b74..272bd013a 100644 --- a/src/lang/queryAst.ts +++ b/src/lang/queryAst.ts @@ -873,6 +873,14 @@ export function hasExtrudeSketch({ ) } +export function artifactIsPlaneWithPaths(selectionRanges: Selections) { + return ( + selectionRanges.graphSelections.length && + selectionRanges.graphSelections[0].artifact?.type === 'plane' && + selectionRanges.graphSelections[0].artifact.pathIds.length + ) +} + export function isSingleCursorInPipe( selectionRanges: Selections, ast: Program diff --git a/src/lang/std/artifactGraph.test.ts b/src/lang/std/artifactGraph.test.ts index 54f1f58bc..059035ac1 100644 --- a/src/lang/std/artifactGraph.test.ts +++ b/src/lang/std/artifactGraph.test.ts @@ -3,11 +3,11 @@ import { assertParse, initPromise, Program, + ArtifactCommand, ExecState, } from 'lang/wasm' import { Models } from '@kittycad/lib' import { - OrderedCommand, ResponseMap, createArtifactGraph, filterArtifacts, @@ -115,7 +115,7 @@ sketch002 = startSketchOn(offsetPlane001) |> line([6.78, 15.01], %) ` -// add more code snippets here and use `getCommands` to get the orderedCommands and responseMap for more tests +// add more code snippets here and use `getCommands` to get the artifactCommands and responseMap for more tests const codeToWriteCacheFor = { exampleCode1, sketchOnFaceOnFaceEtc, @@ -127,7 +127,7 @@ type CodeKey = keyof typeof codeToWriteCacheFor type CacheShape = { [key in CodeKey]: { - orderedCommands: OrderedCommand[] + artifactCommands: ArtifactCommand[] responseMap: ResponseMap execStateArtifacts: ExecState['artifacts'] } @@ -159,7 +159,7 @@ beforeAll(async () => { await kclManager.executeAst({ ast }) cacheToWriteToFileTemp[codeKey] = { - orderedCommands: engineCommandManager.orderedCommands, + artifactCommands: kclManager.execState.artifactCommands, responseMap: engineCommandManager.responseMap, execStateArtifacts: kclManager.execState.artifacts, } @@ -186,14 +186,14 @@ describe('testing createArtifactGraph', () => { it('setup', () => { // putting this logic in here because describe blocks runs before beforeAll has finished const { - orderedCommands, + artifactCommands, responseMap, ast: _ast, execStateArtifacts, } = getCommands('exampleCodeOffsetPlanes') ast = _ast theMap = createArtifactGraph({ - orderedCommands, + artifactCommands, responseMap, ast, execStateArtifacts, @@ -237,14 +237,14 @@ describe('testing createArtifactGraph', () => { it('setup', () => { // putting this logic in here because describe blocks runs before beforeAll has finished const { - orderedCommands, + artifactCommands, responseMap, ast: _ast, execStateArtifacts, } = getCommands('exampleCode1') ast = _ast theMap = createArtifactGraph({ - orderedCommands, + artifactCommands, responseMap, ast, execStateArtifacts, @@ -338,14 +338,14 @@ describe('testing createArtifactGraph', () => { it(`setup`, () => { // putting this logic in here because describe blocks runs before beforeAll has finished const { - orderedCommands, + artifactCommands, responseMap, ast: _ast, execStateArtifacts, } = getCommands('exampleCodeNo3D') ast = _ast theMap = createArtifactGraph({ - orderedCommands, + artifactCommands, responseMap, ast, execStateArtifacts, @@ -409,14 +409,14 @@ describe('capture graph of sketchOnFaceOnFace...', () => { it('setup', async () => { // putting this logic in here because describe blocks runs before beforeAll has finished const { - orderedCommands, + artifactCommands, responseMap, ast: _ast, execStateArtifacts, } = getCommands('sketchOnFaceOnFaceEtc') ast = _ast theMap = createArtifactGraph({ - orderedCommands, + artifactCommands, responseMap, ast, execStateArtifacts, @@ -439,11 +439,11 @@ function getCommands( const file = fs.readFileSync(fullPath, 'utf-8') const parsed: CacheShape = JSON.parse(file) // these either already exist from the last run, or were created in - const orderedCommands = parsed[codeKey].orderedCommands + const artifactCommands = parsed[codeKey].artifactCommands const responseMap = parsed[codeKey].responseMap const execStateArtifacts = parsed[codeKey].execStateArtifacts return { - orderedCommands, + artifactCommands, responseMap, ast, execStateArtifacts, @@ -672,10 +672,10 @@ async function GraphTheGraph( describe('testing getArtifactsToUpdate', () => { it('should return an array of artifacts to update', () => { - const { orderedCommands, responseMap, ast, execStateArtifacts } = + const { artifactCommands, responseMap, ast, execStateArtifacts } = getCommands('exampleCode1') const map = createArtifactGraph({ - orderedCommands, + artifactCommands, responseMap, ast, execStateArtifacts, @@ -683,11 +683,14 @@ describe('testing getArtifactsToUpdate', () => { const getArtifact = (id: string) => map.get(id) const currentPlaneId = 'UUID-1' const getUpdateObjects = (type: Models['ModelingCmd_type']['type']) => { + const artifactCommand = artifactCommands.find( + (a) => a.command.type === type + ) + if (!artifactCommand) { + throw new Error(`No artifactCommand found for ${type}`) + } const artifactsToUpdate = getArtifactsToUpdate({ - orderedCommand: orderedCommands.find( - (a) => - a.command.type === 'modeling_cmd_req' && a.command.cmd.type === type - )!, + artifactCommand, responseMap, getArtifact, currentPlaneId, diff --git a/src/lang/std/artifactGraph.ts b/src/lang/std/artifactGraph.ts index 4492d7a08..467a6a6c9 100644 --- a/src/lang/std/artifactGraph.ts +++ b/src/lang/std/artifactGraph.ts @@ -1,4 +1,12 @@ -import { ExecState, Expr, PathToNode, Program, SourceRange } from 'lang/wasm' +import { + ArtifactCommand, + ExecState, + Expr, + PathToNode, + Program, + SourceRange, + sourceRangeFromRust, +} from 'lang/wasm' import { Models } from '@kittycad/lib' import { getNodePathFromSourceRange } from 'lang/queryAst' import { err } from 'lib/trap' @@ -151,22 +159,18 @@ type OkWebSocketResponseData = Models['OkWebSocketResponseData_type'] export interface ResponseMap { [commandId: string]: OkWebSocketResponseData } -export interface OrderedCommand { - command: EngineCommand - range: SourceRange -} /** Creates a graph of artifacts from a list of ordered commands and their responses * muting the Map should happen entirely this function, other functions called within * should return data on how to update the map, and not do so directly. */ export function createArtifactGraph({ - orderedCommands, + artifactCommands, responseMap, ast, execStateArtifacts, }: { - orderedCommands: Array + artifactCommands: Array responseMap: ResponseMap ast: Node execStateArtifacts: ExecState['artifacts'] @@ -176,17 +180,15 @@ export function createArtifactGraph({ /** see docstring for {@link getArtifactsToUpdate} as to why this is needed */ let currentPlaneId = '' - orderedCommands.forEach((orderedCommand) => { - if (orderedCommand.command?.type === 'modeling_cmd_req') { - if (orderedCommand.command.cmd.type === 'enable_sketch_mode') { - currentPlaneId = orderedCommand.command.cmd.entity_id - } - if (orderedCommand.command.cmd.type === 'sketch_mode_disable') { - currentPlaneId = '' - } + for (const artifactCommand of artifactCommands) { + if (artifactCommand.command.type === 'enable_sketch_mode') { + currentPlaneId = artifactCommand.command.entity_id + } + if (artifactCommand.command.type === 'sketch_mode_disable') { + currentPlaneId = '' } const artifactsToUpdate = getArtifactsToUpdate({ - orderedCommand, + artifactCommand, responseMap, getArtifact: (id: ArtifactId) => myMap.get(id), currentPlaneId, @@ -197,7 +199,7 @@ export function createArtifactGraph({ const mergedArtifact = mergeArtifacts(myMap.get(id), artifact) myMap.set(id, mergedArtifact) }) - }) + } return myMap } @@ -238,14 +240,14 @@ function mergeArtifacts( * can remove this. */ export function getArtifactsToUpdate({ - orderedCommand: { command, range }, + artifactCommand, getArtifact, responseMap, currentPlaneId, ast, execStateArtifacts, }: { - orderedCommand: OrderedCommand + artifactCommand: ArtifactCommand responseMap: ResponseMap /** Passing in a getter because we don't wan this function to update the map directly */ getArtifact: (id: ArtifactId) => Artifact | undefined @@ -256,14 +258,12 @@ export function getArtifactsToUpdate({ id: ArtifactId artifact: Artifact }> { + const range = sourceRangeFromRust(artifactCommand.range) const pathToNode = getNodePathFromSourceRange(ast, range) - // expect all to be `modeling_cmd_req` as batch commands have - // already been expanded before being added to orderedCommands - if (command.type !== 'modeling_cmd_req') return [] - const id = command.cmd_id + const id = artifactCommand.cmdId const response = responseMap[id] - const cmd = command.cmd + const cmd = artifactCommand.command const returnArr: ReturnType = [] if (!response) return returnArr if (cmd.type === 'make_plane' && range[1] !== 0) { @@ -1156,8 +1156,8 @@ export function getArtifactFromRange( for (const artifact of artifactGraph.values()) { if ('codeRef' in artifact && artifact.codeRef) { const match = - artifact?.codeRef.range[0] === range[0] && - artifact?.codeRef.range[1] === range[1] + artifact.codeRef?.range[0] === range[0] && + artifact.codeRef.range[1] === range[1] if (match) return artifact } } diff --git a/src/lang/std/engineConnection.ts b/src/lang/std/engineConnection.ts index d5655e07c..df2067de3 100644 --- a/src/lang/std/engineConnection.ts +++ b/src/lang/std/engineConnection.ts @@ -1,11 +1,10 @@ import { + ArtifactCommand, defaultRustSourceRange, - defaultSourceRange, ExecState, Program, RustSourceRange, SourceRange, - sourceRangeFromRust, } from 'lang/wasm' import { VITE_KC_API_WS_MODELING_URL, VITE_KC_DEV_TOKEN } from 'env' import { Models } from '@kittycad/lib' @@ -21,7 +20,6 @@ import { DefaultPlanes } from 'wasm-lib/kcl/bindings/DefaultPlanes' import { ArtifactGraph, EngineCommand, - OrderedCommand, ResponseMap, createArtifactGraph, } from 'lang/std/artifactGraph' @@ -1305,7 +1303,7 @@ export enum EngineCommandManagerEvents { * * As commands are send their state is tracked in {@link pendingCommands} and clear as soon as we receive a response. * - * Also all commands that are sent are kept track of in {@link orderedCommands} and their responses are kept in {@link responseMap} + * Also all commands that are sent are kept track of in WASM artifactCommands and their responses are kept in {@link responseMap} * Both of these data structures are used to process the {@link artifactGraph}. */ @@ -1331,12 +1329,7 @@ export class EngineCommandManager extends EventTarget { [commandId: string]: PendingMessage } = {} /** - * The orderedCommands array of all the the commands sent to the engine, un-folded from batches, and made into one long - * list of the individual commands, this is used to process all the commands into the artifactGraph - */ - orderedCommands: Array = [] - /** - * A map of the responses to the {@link orderedCommands}, when processing the commands into the artifactGraph, this response map allow + * A map of the responses to the WASM artifactCommands, when processing the commands into the artifactGraph, this response map allow * us to look up the response by command id */ responseMap: ResponseMap = {} @@ -1832,7 +1825,6 @@ export class EngineCommandManager extends EventTarget { } } async startNewSession() { - this.orderedCommands = [] this.responseMap = {} await this.initPlanes() } @@ -2075,28 +2067,6 @@ export class EngineCommandManager extends EventTarget { isSceneCommand, } - if (message.command.type === 'modeling_cmd_req') { - this.orderedCommands.push({ - command: message.command, - range: sourceRangeFromRust(message.range), - }) - } else if (message.command.type === 'modeling_cmd_batch_req') { - message.command.requests.forEach((req) => { - const cmdId = req.cmd_id || '' - const range = cmdId - ? sourceRangeFromRust(message.idToRangeMap[cmdId]) - : defaultSourceRange() - const cmd: EngineCommand = { - type: 'modeling_cmd_req', - cmd_id: req.cmd_id, - cmd: req.cmd, - } - this.orderedCommands.push({ - command: cmd, - range, - }) - }) - } this.engineConnection?.send(message.command) return promise } @@ -2119,10 +2089,11 @@ export class EngineCommandManager extends EventTarget { } updateArtifactGraph( ast: Node, + artifactCommands: ArtifactCommand[], execStateArtifacts: ExecState['artifacts'] ) { this.artifactGraph = createArtifactGraph({ - orderedCommands: this.orderedCommands, + artifactCommands, responseMap: this.responseMap, ast, execStateArtifacts, diff --git a/src/lang/wasm.ts b/src/lang/wasm.ts index 6eb5f87a1..e63018c4a 100644 --- a/src/lang/wasm.ts +++ b/src/lang/wasm.ts @@ -1,4 +1,5 @@ -import init, { +import { + init, parse_wasm, recast_wasm, execute, @@ -16,7 +17,9 @@ import init, { default_project_settings, base64_decode, clear_scene_and_bust_cache, -} from '../wasm-lib/pkg/wasm_lib' + reloadModule, +} from 'lib/wasm_lib_wrapper' + import { KCLError } from './errors' import { KclError as RustKclError } from '../wasm-lib/kcl/bindings/KclError' import { EngineCommandManager } from './std/engineConnection' @@ -35,7 +38,7 @@ import { Configuration } from 'wasm-lib/kcl/bindings/Configuration' import { DeepPartial } from 'lib/types' import { ProjectConfiguration } from 'wasm-lib/kcl/bindings/ProjectConfiguration' import { Sketch } from '../wasm-lib/kcl/bindings/Sketch' -import { ExecState as RawExecState } from '../wasm-lib/kcl/bindings/ExecState' +import { ExecOutcome as RustExecOutcome } from 'wasm-lib/kcl/bindings/ExecOutcome' import { ProgramMemory as RawProgramMemory } from '../wasm-lib/kcl/bindings/ProgramMemory' import { EnvironmentRef } from '../wasm-lib/kcl/bindings/EnvironmentRef' import { Environment } from '../wasm-lib/kcl/bindings/Environment' @@ -43,11 +46,14 @@ import { Node } from 'wasm-lib/kcl/bindings/Node' import { CompilationError } from 'wasm-lib/kcl/bindings/CompilationError' import { SourceRange as RustSourceRange } from 'wasm-lib/kcl/bindings/SourceRange' import { getAllCurrentSettings } from 'lib/settings/settingsUtils' +import { Operation } from 'wasm-lib/kcl/bindings/Operation' import { KclErrorWithOutputs } from 'wasm-lib/kcl/bindings/KclErrorWithOutputs' import { Artifact } from 'wasm-lib/kcl/bindings/Artifact' import { ArtifactId } from 'wasm-lib/kcl/bindings/ArtifactId' +import { ArtifactCommand } from 'wasm-lib/kcl/bindings/ArtifactCommand' export type { Artifact } from 'wasm-lib/kcl/bindings/Artifact' +export type { ArtifactCommand } from 'wasm-lib/kcl/bindings/ArtifactCommand' export type { ArtifactId } from 'wasm-lib/kcl/bindings/ArtifactId' export type { Configuration } from 'wasm-lib/kcl/bindings/Configuration' export type { Program } from '../wasm-lib/kcl/bindings/Program' @@ -147,6 +153,7 @@ export const wasmUrl = () => { // Initialise the wasm module. const initialise = async () => { try { + await reloadModule() const fullUrl = wasmUrl() const input = await fetch(fullUrl) const buffer = await input.arrayBuffer() @@ -226,6 +233,7 @@ export const parse = (code: string | Error): ParseResult | Error => { parsed.kind, parsed.msg, sourceRangeFromRust(parsed.sourceRanges[0]), + [], [] ) } @@ -249,7 +257,9 @@ export const isPathToNodeNumber = ( export interface ExecState { memory: ProgramMemory + operations: Operation[] artifacts: { [key in ArtifactId]?: Artifact } + artifactCommands: ArtifactCommand[] } /** @@ -259,14 +269,18 @@ export interface ExecState { export function emptyExecState(): ExecState { return { memory: ProgramMemory.empty(), + operations: [], artifacts: {}, + artifactCommands: [], } } -function execStateFromRaw(raw: RawExecState): ExecState { +function execStateFromRust(execOutcome: RustExecOutcome): ExecState { return { - memory: ProgramMemory.fromRaw(raw.modLocal.memory), - artifacts: raw.global.artifacts, + memory: ProgramMemory.fromRaw(execOutcome.memory), + operations: execOutcome.operations, + artifacts: execOutcome.artifacts, + artifactCommands: execOutcome.artifactCommands, } } @@ -518,14 +532,14 @@ export const executor = async ( jsAppSettings = getAllCurrentSettings(lastSettingsSnapshot) } } - const execState: RawExecState = await execute( + const execOutcome: RustExecOutcome = await execute( JSON.stringify(node), JSON.stringify(programMemoryOverride?.toRaw() || null), JSON.stringify({ settings: jsAppSettings }), engineCommandManager, fileSystemManager ) - return execStateFromRaw(execState) + return execStateFromRust(execOutcome) } catch (e: any) { console.log(e) const parsed: KclErrorWithOutputs = JSON.parse(e.toString()) @@ -533,7 +547,8 @@ export const executor = async ( parsed.error.kind, parsed.error.msg, sourceRangeFromRust(parsed.error.sourceRanges[0]), - parsed.operations + parsed.operations, + parsed.artifactCommands ) return Promise.reject(kclError) @@ -593,6 +608,7 @@ export const modifyAstForSketch = async ( parsed.kind, parsed.msg, sourceRangeFromRust(parsed.sourceRanges[0]), + [], [] ) @@ -662,6 +678,7 @@ export function programMemoryInit(): ProgramMemory | Error { parsed.kind, parsed.msg, sourceRangeFromRust(parsed.sourceRanges[0]), + [], [] ) } diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 2326d82d0..40417c262 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -136,3 +136,5 @@ export const VIEW_NAMES_SEMANTIC = { [AxisNames.NEG_Y]: 'Front', [AxisNames.NEG_Z]: 'Bottom', } as const +/** The modeling sidebar buttons' IDs get a suffix to prevent collisions */ +export const SIDEBAR_BUTTON_SUFFIX = '-pane-button' diff --git a/src/lib/exceptions.ts b/src/lib/exceptions.ts new file mode 100644 index 000000000..d72075221 --- /dev/null +++ b/src/lib/exceptions.ts @@ -0,0 +1,51 @@ +import { kclManager } from 'lib/singletons' +import { reloadModule, getModule } from 'lib/wasm_lib_wrapper' +import toast from 'react-hot-toast' +import { reportRejection } from './trap' + +let initialized = false + +/** + * WASM/Rust runtime can panic and the original try/catch/finally blocks will not trigger + * on the await promise. The interface will killed. This means we need to catch the error at + * the global/DOM level. This will have to interface with whatever controlflow that needs to be picked up + * within the error branch in the typescript to cover the application state. + */ +export const initializeWindowExceptionHandler = () => { + if (window && !initialized) { + window.addEventListener('error', (event) => { + void (async () => { + if (matchImportExportErrorCrash(event.message)) { + // do global singleton cleanup + kclManager.executeAstCleanUp() + toast.error( + 'You have hit a KCL execution bug! Put your KCL code in a github issue to help us resolve this bug.' + ) + try { + await reloadModule() + await getModule().default() + } catch (e) { + console.error('Failed to initialize wasm_lib') + console.error(e) + } + } + })().catch(reportRejection) + }) + // Make sure we only initialize this event listener once + initialized = true + } else { + console.error( + `Failed to initialize, window: ${window}, initialized:${initialized}` + ) + } +} + +/** + * Specifically match a substring of the message error to detect an import export runtime issue + * when the WASM runtime panics + */ +const matchImportExportErrorCrash = (message: string): boolean => { + // called `Result::unwrap_throw()` on an `Err` value + const substringError = '`Result::unwrap_throw()` on an `Err` value' + return message.indexOf(substringError) !== -1 ? true : false +} diff --git a/src/lib/machine-api.d.ts b/src/lib/machine-api.d.ts index 0fafa323a..301137c63 100644 --- a/src/lib/machine-api.d.ts +++ b/src/lib/machine-api.d.ts @@ -155,7 +155,7 @@ export interface components { color?: string | null /** @description The material that the filament is made of. */ material: components['schemas']['FilamentMaterial'] - /** @description The name of the filament, this is likely specfic to the manufacturer. */ + /** @description The name of the filament, this is likely specific to the manufacturer. */ name?: string | null } /** @description The material that the filament is made of. */ diff --git a/src/lib/markdown.ts b/src/lib/markdown.ts new file mode 100644 index 000000000..aecf4df91 --- /dev/null +++ b/src/lib/markdown.ts @@ -0,0 +1,52 @@ +import { MarkedOptions, Renderer, unescape } from '@ts-stack/markdown' +import { openExternalBrowserIfDesktop } from './openWindow' + +/** + * Main goal of this custom renderer is to prevent links from changing the current location + * this is specially important for the desktop app. + */ +export class SafeRenderer extends Renderer { + constructor(options: MarkedOptions) { + super(options) + + // Attach a global function for non-react anchor elements that need safe navigation + window.openExternalLink = (e: React.MouseEvent) => { + openExternalBrowserIfDesktop()(e) + } + } + + // Extended from https://github.com/ts-stack/markdown/blob/c5c1925c1153ca2fe9051c356ef0ddc60b3e1d6a/packages/markdown/src/renderer.ts#L116 + link(href: string, title: string, text: string): string { + if (this.options.sanitize) { + let prot: string + + try { + prot = decodeURIComponent(unescape(href)) + .replace(/[^\w:]/g, '') + .toLowerCase() + } catch (e) { + return text + } + + if ( + // eslint-disable-next-line no-script-url + prot.indexOf('javascript:') === 0 || + prot.indexOf('vbscript:') === 0 || + prot.indexOf('data:') === 0 + ) { + return text + } + } + + let out = + '' + + return out + } +} diff --git a/src/lib/operations.test.ts b/src/lib/operations.test.ts new file mode 100644 index 000000000..5aeb27836 --- /dev/null +++ b/src/lib/operations.test.ts @@ -0,0 +1,122 @@ +import { defaultRustSourceRange } from 'lang/wasm' +import { filterOperations } from './operations' +import { Operation } from 'wasm-lib/kcl/bindings/Operation' + +function stdlib(name: string): Operation { + return { + type: 'StdLibCall', + name, + unlabeledArg: null, + labeledArgs: {}, + sourceRange: defaultRustSourceRange(), + isError: false, + } +} + +function userCall(name: string): Operation { + return { + type: 'UserDefinedFunctionCall', + name, + functionSourceRange: defaultRustSourceRange(), + unlabeledArg: null, + labeledArgs: {}, + sourceRange: defaultRustSourceRange(), + } +} +function userReturn(): Operation { + return { + type: 'UserDefinedFunctionReturn', + } +} + +describe('operations filtering', () => { + it('drops stdlib operations inside a user-defined function call', async () => { + const operations = [ + stdlib('std1'), + userCall('foo'), + stdlib('std2'), + stdlib('std3'), + userReturn(), + stdlib('std4'), + stdlib('std5'), + ] + const actual = filterOperations(operations) + expect(actual).toEqual([ + stdlib('std1'), + userCall('foo'), + stdlib('std4'), + stdlib('std5'), + ]) + }) + it('drops user-defined function calls that contain no stdlib operations', async () => { + const operations = [ + stdlib('std1'), + userCall('foo'), + userReturn(), + stdlib('std2'), + userCall('bar'), + userReturn(), + stdlib('std3'), + ] + const actual = filterOperations(operations) + expect(actual).toEqual([stdlib('std1'), stdlib('std2'), stdlib('std3')]) + }) + it('preserves user-defined function calls at the end of the list', async () => { + const operations = [stdlib('std1'), userCall('foo')] + const actual = filterOperations(operations) + expect(actual).toEqual([stdlib('std1'), userCall('foo')]) + }) + it('drops all user-defined function return operations', async () => { + // The returns allow us to group operations with the call, but we never + // display the returns. + const operations = [ + stdlib('std1'), + userCall('foo'), + stdlib('std2'), + userReturn(), + stdlib('std3'), + stdlib('std4'), + userCall('foo2'), + stdlib('std5'), + stdlib('std6'), + userReturn(), + stdlib('std7'), + ] + const actual = filterOperations(operations) + expect(actual).toEqual([ + stdlib('std1'), + userCall('foo'), + stdlib('std3'), + stdlib('std4'), + userCall('foo2'), + stdlib('std7'), + ]) + }) + it('correctly filters with nested function calls', async () => { + const operations = [ + stdlib('std1'), + userCall('foo'), + stdlib('std2'), + userReturn(), + stdlib('std3'), + stdlib('std4'), + userCall('foo2'), + stdlib('std5'), + userCall('foo3-nested'), + stdlib('std6'), + userReturn(), + stdlib('std7'), + userReturn(), + stdlib('std8'), + ] + const actual = filterOperations(operations) + expect(actual).toEqual([ + stdlib('std1'), + userCall('foo'), + stdlib('std3'), + stdlib('std4'), + userCall('foo2'), + stdlib('std8'), + ]) + }) +}) diff --git a/src/lib/operations.ts b/src/lib/operations.ts new file mode 100644 index 000000000..163abf8d6 --- /dev/null +++ b/src/lib/operations.ts @@ -0,0 +1,180 @@ +import { CustomIconName } from 'components/CustomIcon' +import { Operation } from 'wasm-lib/kcl/bindings/Operation' + +interface StdLibCallInfo { + label: string + icon: CustomIconName +} + +const stdLibMap: Record = { + chamfer: { + label: 'Chamfer', + icon: 'chamfer3d', + }, + extrude: { + label: 'Extrude', + icon: 'extrude', + }, + fillet: { + label: 'Fillet', + icon: 'fillet3d', + }, + hole: { + label: 'Hole', + icon: 'hole', + }, + hollow: { + label: 'Hollow', + icon: 'hollow', + }, + import: { + label: 'Import', + icon: 'import', + }, + loft: { + label: 'Loft', + icon: 'loft', + }, + offsetPlane: { + label: 'Offset Plane', + icon: 'plane', + }, + patternCircular2d: { + label: 'Circular Pattern', + icon: 'patternCircular2d', + }, + patternCircular3d: { + label: 'Circular Pattern', + icon: 'patternCircular3d', + }, + patternLinear2d: { + label: 'Linear Pattern', + icon: 'patternLinear2d', + }, + patternLinear3d: { + label: 'Linear Pattern', + icon: 'patternLinear3d', + }, + revolve: { + label: 'Revolve', + icon: 'revolve', + }, + shell: { + label: 'Shell', + icon: 'shell', + }, + startSketchOn: { + label: 'Sketch', + icon: 'sketch', + }, + sweep: { + label: 'Sweep', + icon: 'sweep', + }, +} + +/** + * Returns the label of the operation + */ +export function getOperationLabel(op: Operation): string { + switch (op.type) { + case 'StdLibCall': + return stdLibMap[op.name]?.label ?? op.name + case 'UserDefinedFunctionCall': + return op.name ?? 'Anonymous custom function' + case 'UserDefinedFunctionReturn': + return 'User function return' + } +} + +/** + * Returns the icon of the operation + */ +export function getOperationIcon(op: Operation): CustomIconName { + switch (op.type) { + case 'StdLibCall': + return stdLibMap[op.name]?.icon ?? 'questionMark' + default: + return 'make-variable' + } +} + +/** + * Apply all filters to a list of operations. + */ +export function filterOperations(operations: Operation[]): Operation[] { + return operationFilters.reduce((ops, filterFn) => filterFn(ops), operations) +} + +/** + * The filters to apply to a list of operations + * for use in the feature tree UI + */ +const operationFilters = [ + isNotUserFunctionWithNoOperations, + isNotInsideUserFunction, + isNotUserFunctionReturn, +] + +/** + * A filter to exclude everything that occurs inside a UserDefinedFunctionCall + * and its corresponding UserDefinedFunctionReturn from a list of operations. + * This works even when there are nested function calls. + */ +function isNotInsideUserFunction(operations: Operation[]): Operation[] { + const ops: Operation[] = [] + let depth = 0 + for (const op of operations) { + if (depth === 0) { + ops.push(op) + } + if (op.type === 'UserDefinedFunctionCall') { + depth++ + } + if (op.type === 'UserDefinedFunctionReturn') { + depth-- + console.assert( + depth >= 0, + 'Unbalanced UserDefinedFunctionCall and UserDefinedFunctionReturn; too many returns' + ) + } + } + // Depth could be non-zero here if there was an error in execution. + return ops +} + +/** + * A filter to exclude UserDefinedFunctionCall operations and their + * corresponding UserDefinedFunctionReturn that don't have any operations inside + * them from a list of operations. + */ +function isNotUserFunctionWithNoOperations( + operations: Operation[] +): Operation[] { + return operations.filter((op, index) => { + if ( + op.type === 'UserDefinedFunctionCall' && + // If this is a call at the end of the array, it's preserved. + index < operations.length - 1 && + operations[index + 1].type === 'UserDefinedFunctionReturn' + ) + return false + if ( + op.type === 'UserDefinedFunctionReturn' && + // If this return is at the beginning of the array, it's preserved. + index > 0 && + operations[index - 1].type === 'UserDefinedFunctionCall' + ) + return false + + return true + }) +} + +/** + * A filter to exclude UserDefinedFunctionReturn operations from a list of + * operations. + */ +function isNotUserFunctionReturn(ops: Operation[]): Operation[] { + return ops.filter((op) => op.type !== 'UserDefinedFunctionReturn') +} diff --git a/src/lib/screenshot.ts b/src/lib/screenshot.ts index aee920155..190a94997 100644 --- a/src/lib/screenshot.ts +++ b/src/lib/screenshot.ts @@ -1,6 +1,24 @@ -import html2canvas from 'html2canvas-pro' +function takeScreenshotOfVideoStreamCanvas() { + const canvas = document.querySelector('[data-engine]') + const video = document.getElementById('video-stream') + if ( + canvas && + video && + canvas instanceof HTMLCanvasElement && + video instanceof HTMLVideoElement + ) { + const videoCanvas = document.createElement('canvas') + videoCanvas.width = canvas.width + videoCanvas.height = canvas.height + const context = videoCanvas.getContext('2d') + context?.drawImage(video, 0, 0, videoCanvas.width, videoCanvas.height) + const url = videoCanvas.toDataURL('image/png') + return url + } else { + return '' + } +} -// Return a data URL (png format) of the screenshot of the current page. export default async function screenshot(): Promise { if (typeof window === 'undefined') { return Promise.reject( @@ -9,11 +27,17 @@ export default async function screenshot(): Promise { ) ) } - return html2canvas(document.documentElement) - .then((canvas) => { - return canvas.toDataURL() - }) - .catch((error) => { - return Promise.reject(error) - }) + + if (window.electron) { + const canvas = document.querySelector('[data-engine]') + if (canvas instanceof HTMLCanvasElement) { + const url = await window.electron.takeElectronWindowScreenshot({ + width: canvas?.width || 500, + height: canvas?.height || 500, + }) + return url !== '' ? url : takeScreenshotOfVideoStreamCanvas() + } + } + + return takeScreenshotOfVideoStreamCanvas() } diff --git a/src/lib/selections.ts b/src/lib/selections.ts index c41955ae3..9746819b0 100644 --- a/src/lib/selections.ts +++ b/src/lib/selections.ts @@ -324,7 +324,8 @@ export function handleSelectionBatch({ resetAndSetEngineEntitySelectionCmds(selectionToEngine) selections.graphSelections.forEach(({ codeRef }) => { if (codeRef.range?.[1]) { - ranges.push(EditorSelection.cursor(codeRef.range[1])) + const safeEnd = Math.min(codeRef.range[1], codeManager.code.length) + ranges.push(EditorSelection.cursor(safeEnd)) } }) if (ranges.length) @@ -780,6 +781,14 @@ export function codeToIdSelections( } } } + + if (entry.artifact.type === 'sweep') { + bestCandidate = { + artifact: entry.artifact, + selection, + id: entry.id, + } + } }) if (bestCandidate) { diff --git a/src/lib/toolbar.ts b/src/lib/toolbar.ts index b3ecc503d..1ce337e2f 100644 --- a/src/lib/toolbar.ts +++ b/src/lib/toolbar.ts @@ -148,10 +148,6 @@ export const toolbarConfig: Record = { label: 'KCL docs', url: 'https://zoo.dev/docs/kcl/loft', }, - { - label: 'GitHub discussion', - url: 'https://github.com/KittyCAD/modeling-app/discussions/613', - }, ], }, 'break', @@ -276,6 +272,35 @@ export const toolbarConfig: Record = { links: [], }, ], + 'break', + [ + { + id: 'text-to-cad', + onClick: ({ commandBarSend }) => + commandBarSend({ + type: 'Find and select command', + data: { name: 'Text-to-CAD', groupId: 'modeling' }, + }), + icon: 'sparkles', + status: 'available', + title: 'Text-to-CAD', + description: 'Generate geometry from a text prompt.', + links: [], + }, + { + id: 'prompt-to-edit', + onClick: ({ commandBarSend }) => + commandBarSend({ + type: 'Find and select command', + data: { name: 'Prompt-to-edit', groupId: 'modeling' }, + }), + icon: 'sparkles', + status: 'available', + title: 'Prompt-to-Edit', + description: 'Edit geometry based on a text prompt.', + links: [], + }, + ], ], }, sketching: { @@ -418,10 +443,19 @@ export const toolbarConfig: Record = { }, { id: 'circle-three-points', - onClick: () => - console.error('Three-point circle not yet implemented'), + onClick: ({ modelingState, modelingSend }) => + modelingSend({ + type: 'change tool', + data: { + tool: !modelingState.matches({ + Sketch: 'circle3PointToolSelect', + }) + ? 'circle3Points' + : 'none', + }, + }), icon: 'circle', - status: 'unavailable', + status: 'available', title: 'Three-point circle', showTitle: false, description: 'Draw a circle defined by three points', diff --git a/src/lib/wasm_lib_wrapper.ts b/src/lib/wasm_lib_wrapper.ts new file mode 100644 index 000000000..1fe1b8bf7 --- /dev/null +++ b/src/lib/wasm_lib_wrapper.ts @@ -0,0 +1,108 @@ +/** + * This wrapper file is to enable reloading of the wasm_lib.js file. + * When the wasm instance bricks there is no API or interface to restart, + * restore, or re init the WebAssembly instance. The entire application would need + * to restart. + * A way to bypass this is by reloading the entire .js file so the global wasm variable + * gets reinitialized and we do not use that old reference + */ + +import { + parse_wasm as ParseWasm, + recast_wasm as RecastWasm, + execute as Execute, + kcl_lint as KclLint, + modify_ast_for_sketch_wasm as ModifyAstForSketch, + is_points_ccw as IsPointsCcw, + get_tangential_arc_to_info as GetTangentialArcToInfo, + program_memory_init as ProgramMemoryInit, + make_default_planes as MakeDefaultPlanes, + coredump as CoreDump, + toml_stringify as TomlStringify, + default_app_settings as DefaultAppSettings, + parse_app_settings as ParseAppSettings, + parse_project_settings as ParseProjectSettings, + default_project_settings as DefaultProjectSettings, + base64_decode as Base64Decode, + clear_scene_and_bust_cache as ClearSceneAndBustCache, +} from '../wasm-lib/pkg/wasm_lib' + +type ModuleType = typeof import('../wasm-lib/pkg/wasm_lib') + +// Stores the result of the import of the wasm_lib file +let data: ModuleType + +// Imports the .js file again which will clear the old import +// This allows us to reinitialize the wasm instance +export async function reloadModule() { + data = await import(`../wasm-lib/pkg/wasm_lib`) +} + +export function getModule(): ModuleType { + return data +} + +export async function init(module_or_path: any) { + return await getModule().default(module_or_path) +} +export const parse_wasm: typeof ParseWasm = (...args) => { + return getModule().parse_wasm(...args) +} +export const recast_wasm: typeof RecastWasm = (...args) => { + return getModule().recast_wasm(...args) +} +export const execute: typeof Execute = (...args) => { + return getModule().execute(...args) +} +export const kcl_lint: typeof KclLint = (...args) => { + return getModule().kcl_lint(...args) +} +export const modify_ast_for_sketch_wasm: typeof ModifyAstForSketch = ( + ...args +) => { + return getModule().modify_ast_for_sketch_wasm(...args) +} +export const is_points_ccw: typeof IsPointsCcw = (...args) => { + return getModule().is_points_ccw(...args) +} +export const get_tangential_arc_to_info: typeof GetTangentialArcToInfo = ( + ...args +) => { + return getModule().get_tangential_arc_to_info(...args) +} +export const program_memory_init: typeof ProgramMemoryInit = (...args) => { + return getModule().program_memory_init(...args) +} +export const make_default_planes: typeof MakeDefaultPlanes = (...args) => { + return getModule().make_default_planes(...args) +} +export const coredump: typeof CoreDump = (...args) => { + return getModule().coredump(...args) +} +export const toml_stringify: typeof TomlStringify = (...args) => { + return getModule().toml_stringify(...args) +} +export const default_app_settings: typeof DefaultAppSettings = (...args) => { + return getModule().default_app_settings(...args) +} +export const parse_app_settings: typeof ParseAppSettings = (...args) => { + return getModule().parse_app_settings(...args) +} +export const parse_project_settings: typeof ParseProjectSettings = ( + ...args +) => { + return getModule().parse_project_settings(...args) +} +export const default_project_settings: typeof DefaultProjectSettings = ( + ...args +) => { + return getModule().default_project_settings(...args) +} +export const base64_decode: typeof Base64Decode = (...args) => { + return getModule().base64_decode(...args) +} +export const clear_scene_and_bust_cache: typeof ClearSceneAndBustCache = ( + ...args +) => { + return getModule().clear_scene_and_bust_cache(...args) +} diff --git a/src/machines/featureTreeMachine.ts b/src/machines/featureTreeMachine.ts new file mode 100644 index 000000000..e91569b6c --- /dev/null +++ b/src/machines/featureTreeMachine.ts @@ -0,0 +1,157 @@ +import { SourceRange } from 'lang/wasm' +import { assign, setup } from 'xstate' + +type FeatureTreeEvent = + | { + type: 'goToKclSource' + data: { targetSourceRange: SourceRange } + } + | { + type: 'selectOperation' + data: { targetSourceRange: SourceRange } + } + | { + type: 'enterEditFlow' + data: { targetSourceRange: SourceRange } + } + | { type: 'goToError' } + | { type: 'codePaneOpened' } + | { type: 'selected' } + | { type: 'done' } + +export const featureTreeMachine = setup({ + types: { + context: {} as { targetSourceRange?: SourceRange }, + events: {} as FeatureTreeEvent, + }, + guards: { + codePaneIsOpen: () => false, + }, + actions: { + saveTargetSourceRange: assign({ + targetSourceRange: ({ event }) => + 'data' in event ? event.data.targetSourceRange : undefined, + }), + clearTargetSourceRange: assign({ + targetSourceRange: undefined, + }), + sendSelectionEvent: () => {}, + openCodePane: () => {}, + sendEditFlowStart: () => {}, + scrollToError: () => {}, + }, +}).createMachine({ + /** @xstate-layout N4IgpgJg5mDOIC5QDMwEMAuBXATmAKnmAHQCWEANmAMRQD2+dA0gMYUDKduLYA2gAwBdRKAAOdWKQyk6AOxEgAHogCMAFn7EAbAFYAHAHYAnGoOm9OgMw6tAGhABPRBsvF+a6wYBM-A-0uWepYGAL4h9qiYuAREZJQ0sGBULBgA8qJgOJgysgLCSCDiktJyCsoIKipabmo6-Co2Wip+-DoG9k4IWpp+Ae6W-N16KpZeYRHo2HiEYCTkVNRgshiZAKIQUgBiFHQA7nkKRVI5ZapergN6el46515GVdYdiN4GbjpGXiNGV2pan+MQJEpjFZsR6KRZFBGKwOFwcDxiIlktIodRkWAUpADgUjiV5AVyipWipiGZupYVCY1D5+F5ngg-jpiJ8DFo1OoDA13GNwkDJtEZiQIVCYWxONwSBA5DQcWIJMdSoTVG0yTodGoPAZKfwjP52o5EHVNIYvNd9M0zJZAcDBbERdDmOL4Yi6BlZJCoABhOgQMAABTQshoLF9AaDYHSS2xQkOCvxpy6lWIbS0Bm8JkM+ksDKZLK8bL0-S8NOCNoF01iGJSnqRSUxqKg6PrWIgcsK8ZOyq6aj0avTbU1Hg0KgZzVcrU+Xn+9Q+dPLUUrYOrjeI0uD1HbeK7oCJBj7xkafhMX28agZJeqHz0RhstTUD21WgXIKFxCWKxwnvWWx2uzrKKes2KIxvk8rFDuShGpY1RaKMRiHr4va9gyegPsQQRmiYVK+GYL52mCH6ZN+GwYNsexrjKm6xrinZKruqhaLBmr8PUvj6F4nGoeoxDEpYCFMVSowfPhS7CnQnqMKsOA4HQODEG6Syej6fqBhuoaqRGUbBm2NHgYqBIMV0-EproxLpoE7hWGOnFeGSxgaPwei6EYmaiaCczxLQDB0NJsk4FudGGVBFRpsQwRGGmgx6n4cH0oaFSVH21i6LqD5mtYejuW+DpSTJcmURugUQfRIX6MQfwcpqDxpUETwJSoXxqMQ04PjoSXspYtRhHyshhvABS2mJcYlcF5QALR2Al43TtoVJDD46ZfJS1p8kNHlxFQI0GYmNJjn8c21PuIzjuq2X2hJopOnCkrbQm3ZdXZNhsl1fzOSW1kJdYzKeK5VQqJh+7nWCuXXRKCIkCunp3ZB5RFq46ofOq6geDeo4JZqdlaEWt66l8jXfcD4mSWDLpSjKMOlUSzSwXS2qztVfy5jS2g43UnyVOcZ1rRWG2g7C4Ouu6ylhmpYCU2NiD8Zoz1wZq2NaB9OYYyz2O6gE3TtR8XVEwBDbQ7Ro2JtYT1pnLb2K7UyudIrFU3h8ZoamafhZTzi4bVDUJ6zWUIS7trGmS98vvVb+1GBhjUPtqer3KxOi657UCFeLhs7d2FmHe1ARmFr54NdqLUFrZnLBFUutEV+UI-mRf5+w9NgYZSNyBHB6rxTbcHhTY5wmDVMGrRM7tvhXJG-hRid10ZGjNUEjVWM533t4gaHh8aFgaOc+7XOXyzEVXpHkf+64p-p91T744VBEE7h0oEGpTZ0Dx2Sbhi9r4ozNLroN+XJk8hTBV51SRQGE7JiS9ErJjgnSRWC0bCu0Hq+C6JMf7yUUh6KEKlwzBj-uUKqKYgFQNAYrMcVI+yVFcqxfwFhAhf0uo6FByccHLyaC1JygRp5FkagaTo5CyFUj1KxO+gReRhCAA */ + id: 'featureTree', + description: 'Workflows for interacting with the feature tree pane', + states: { + idle: { + on: { + goToKclSource: { + target: 'goingToKclSource', + actions: 'saveTargetSourceRange', + }, + + selectOperation: { + target: 'selecting', + actions: 'saveTargetSourceRange', + }, + + enterEditFlow: { + target: 'enteringEditFlow', + actions: 'saveTargetSourceRange', + }, + + goToError: 'goingToError', + }, + }, + + goingToKclSource: { + states: { + selecting: { + on: { + selected: { + target: 'done', + }, + }, + + entry: ['sendSelectionEvent'], + }, + + done: { + entry: ['clearTargetSourceRange'], + always: '#featureTree.idle', + }, + + openingCodePane: { + on: { + codePaneOpened: 'selecting', + }, + + entry: 'openCodePane', + }, + }, + + initial: 'openingCodePane', + }, + + selecting: { + states: { + selecting: { + on: { + selected: 'done', + }, + + entry: 'sendSelectionEvent', + }, + + done: { + always: '#featureTree.idle', + entry: 'clearTargetSourceRange', + }, + }, + + initial: 'selecting', + }, + + enteringEditFlow: { + states: { + selecting: { + on: { + selected: 'done', + }, + }, + + done: { + always: '#featureTree.idle', + }, + }, + + initial: 'selecting', + entry: 'sendSelectionEvent', + exit: ['clearTargetSourceRange', 'sendEditFlowStart'], + }, + + goingToError: { + states: { + openingCodePane: { + entry: 'openCodePane', + + on: { + codePaneOpened: 'done', + }, + }, + + done: { + entry: 'scrollToError', + + always: '#featureTree.idle', + }, + }, + + initial: 'openingCodePane', + }, + }, + + initial: 'idle', +}) diff --git a/src/machines/kclEditorMachine.ts b/src/machines/kclEditorMachine.ts new file mode 100644 index 000000000..86c16efe6 --- /dev/null +++ b/src/machines/kclEditorMachine.ts @@ -0,0 +1,67 @@ +import { assign, createActor, setup, StateFrom } from 'xstate' +import { EditorSelection } from '@codemirror/state' + +type SelectionEvent = { + codeMirrorSelection: EditorSelection + scrollIntoView: boolean +} +type KclEditorMachineEvent = + | { type: 'setKclEditorMounted'; data: boolean } + | { type: 'setLastSelectionEvent'; data?: SelectionEvent } + +interface KclEditorMachineContext { + isKclEditorMounted: boolean + lastSelectionEvent?: SelectionEvent +} + +/** + * This is a one-off XState machine not tied to React, so that we can publish + * state to it from singletons and other parts of the app. + */ +export const kclEditorMachine = setup({ + types: { + events: {} as KclEditorMachineEvent, + context: {} as KclEditorMachineContext, + }, + actions: { + setKclEditorMounted: assign({ + isKclEditorMounted: ({ context, event }) => + event.type === 'setKclEditorMounted' + ? event.data + : context.isKclEditorMounted, + }), + setLastSelectionEvent: assign({ + lastSelectionEvent: ({ context, event }) => + event.type === 'setLastSelectionEvent' + ? event.data + : context.lastSelectionEvent, + }), + }, +}).createMachine({ + /** @xstate-layout N4IgpgJg5mDOIC5QGsDGAbAohAlgFwHsAnAWQENUALHAOzAGJYw8BpDbfYkggVxr0gBtAAwBdRKAAOBWPhwEaEkAA9EARmEB2AHTCALACYAzGs0BWMwDYAHNZOWANCACeiALRrL2tQesGzamZ+FgYAnJqaAL7RTjQEEHBKaFi4hKQU1HRK0rJ48opIKupq2tZmwgZ6RpZ6msJGeqaOLupG1tq+bQFalZqWZtHRQA */ + id: 'kclEditorMachine', + context: { + isKclEditorMounted: false, + lastSelectionEvent: undefined, + }, + on: { + setKclEditorMounted: { + actions: 'setKclEditorMounted', + }, + setLastSelectionEvent: { + actions: 'setLastSelectionEvent', + }, + }, +}) + +export const kclEditorActor = createActor(kclEditorMachine).start() + +/** Watch for changes to `lastSelectionEvent` */ +export const selectionEventSelector = ( + snapshot?: StateFrom +) => snapshot?.context?.lastSelectionEvent + +/** Watch for the editorView to be mounted */ +export const editorIsMountedSelector = ( + snapshot?: StateFrom +) => snapshot?.context?.isKclEditorMounted diff --git a/src/machines/modelingMachine.ts b/src/machines/modelingMachine.ts index 6c77d12f0..d725646db 100644 --- a/src/machines/modelingMachine.ts +++ b/src/machines/modelingMachine.ts @@ -13,7 +13,7 @@ import { Selection, updateSelections, } from 'lib/selections' -import { assign, fromPromise, setup } from 'xstate' +import { assign, fromPromise, fromCallback, setup } from 'xstate' import { SidebarType } from 'components/ModelingSidebar/ModelingPanes' import { isNodeSafeToReplacePath, @@ -89,6 +89,7 @@ export type SetSelections = | { selectionType: 'singleCodeCursor' selection?: Selection + scrollIntoView?: boolean } | { selectionType: 'axisSelection' @@ -225,6 +226,7 @@ export type SketchTool = | 'rectangle' | 'center rectangle' | 'circle' + | 'circle3Points' | 'none' export type ModelingMachineEvent = @@ -248,7 +250,7 @@ export type ModelingMachineEvent = } | { type: 'Sketch no face' } | { type: 'Toggle gui mode' } - | { type: 'Cancel' } + | { type: 'Cancel'; cleanup?: () => void } | { type: 'CancelSketch' } | { type: 'Add start point' | 'Continue existing profile' @@ -345,6 +347,7 @@ export type ModelingMachineEvent = | { type: 'Finish circle' } | { type: 'Artifact graph populated' } | { type: 'Artifact graph emptied' } + | { type: 'stop-internal' } export type MoveDesc = { line: number; snippet: string } @@ -574,6 +577,8 @@ export const modelingMachine = setup({ currentTool === 'center rectangle', 'next is circle': ({ context: { currentTool } }) => currentTool === 'circle', + 'next is circle 3 point': ({ context: { currentTool } }) => + currentTool === 'circle3Points', 'next is line': ({ context }) => context.currentTool === 'line', 'next is none': ({ context }) => context.currentTool === 'none', }, @@ -736,6 +741,8 @@ export const modelingMachine = setup({ }, 'AST delete selection': ({ context: { selectionRanges } }) => { ;(async () => { + const errorMessage = + 'Unable to delete selection. Please edit manually in code pane.' let ast = kclManager.ast const modifiedAst = await deleteFromSelection( @@ -744,7 +751,10 @@ export const modelingMachine = setup({ kclManager.programMemory, getFaceDetails ) - if (err(modifiedAst)) return + if (err(modifiedAst)) { + toast.error(errorMessage) + return + } const testExecute = await executeAst({ ast: modifiedAst, @@ -753,7 +763,7 @@ export const modelingMachine = setup({ programMemoryOverride: ProgramMemory.empty(), }) if (testExecute.errors.length) { - toast.error('Unable to delete part') + toast.error(errorMessage) return } @@ -761,30 +771,6 @@ export const modelingMachine = setup({ await codeManager.updateEditorWithAstAndWriteToFile(modifiedAst) })().catch(reportRejection) }, - 'AST fillet': ({ event }) => { - if (event.type !== 'Fillet') return - if (!event.data) return - - // Extract inputs - const ast = kclManager.ast - const { selection, radius } = event.data - const parameters: FilletParameters = { - type: EdgeTreatmentType.Fillet, - radius, - } - - // Apply fillet to selection - const applyEdgeTreatmentToSelectionResult = applyEdgeTreatmentToSelection( - ast, - selection, - parameters - ) - if (err(applyEdgeTreatmentToSelectionResult)) - return applyEdgeTreatmentToSelectionResult - - // eslint-disable-next-line @typescript-eslint/no-floating-promises - codeManager.updateEditorWithAstAndWriteToFile(kclManager.ast) - }, 'set selection filter to curves only': () => { ;(async () => { await engineCommandManager.sendSceneCommand({ @@ -1709,6 +1695,33 @@ export const modelingMachine = setup({ } } ), + filletAstMod: fromPromise( + async ({ + input, + }: { + input: ModelingCommandSchema['Fillet'] | undefined + }) => { + if (!input) { + return new Error('No input provided') + } + + // Extract inputs + const ast = kclManager.ast + const { selection, radius } = input + const parameters: FilletParameters = { + type: EdgeTreatmentType.Fillet, + radius, + } + + // Apply fillet to selection + const filletResult = await applyEdgeTreatmentToSelection( + ast, + selection, + parameters + ) + if (err(filletResult)) return filletResult + } + ), 'set-up-draft-circle': fromPromise( async (_: { input: Pick & { @@ -1753,10 +1766,35 @@ export const modelingMachine = setup({ console.log('doing thing', input) } ), + // lee: I REALLY wanted to inline this at the location of the actor invocation + // but the type checker loses it's fricking mind because the `actors` prop + // this exists on now doesn't have the correct type if I do that. *agh*. + actorCircle3Point: fromCallback< + { type: '' }, // Not used. We receive() no events in this actor. + SketchDetails | undefined, + // Doesn't type-check anything for some reason. + { type: 'stop-internal' } // The 1 event we sendBack(). + >(function ({ sendBack, receive, input: sketchDetails }) { + // In the wild event we have no sketch details, return immediately, + // destroying the actor and going back to idle state. + if (!sketchDetails) return + + const cleanupFn = sceneEntitiesManager.entryDraftCircle3Point( + // I make it clear that the stop is coming from an internal call + () => sendBack({ type: 'stop-internal' }), + sketchDetails.sketchPathToNode, + new Vector3(...sketchDetails.zAxis), + new Vector3(...sketchDetails.yAxis), + new Vector3(...sketchDetails.origin) + ) + + // When the state is exited (by anything, even itself), this is run! + return cleanupFn + }), }, - // end services + // end actors }).createMachine({ - /** @xstate-layout N4IgpgJg5mDOIC5QFkD2EwBsCWA7KAxAMICGuAxlgNoAMAuoqAA6qzYAu2qujIAHogC0ANhoBWAHQAOAMwB2KQEY5AFgCcGqWqkAaEAE9Ew0RLEqa64TIBMKmTUXCAvk71oMOfAQDKYdgAJYLDByTm5aBiQQFjYwniiBBEEpYSkJOUUaOWsxeylrWzk9QwQClQkrVOsZNWExFItnVxB3LDxCXwCAW1QAVyDA9hJ2MAjeGI4ueNBE5KkaCWspZfMM+XE1YsQZMQWxNQtxao0ZeRc3dDavTv9ybhG+djGoibjeWZSZCRUxJa1flTCNTWLYIYS2CT2RSKdRyGhZawWc4tS6eDp+fy+KBdMC4AIAeQAbmAAE6YEj6WDPZisSbcd5CYHCSFqOQ1NSKWRiMRA0HqSTKblSX48+pKZGtNHEXEjEm3Eg4kkkfzcQLBUJTanRWlvBKM1LpFSKXKOTKKDmbAyIMwSGgHRFyXL5OE0KQS1HtCTYCCYMAEACieNJgQA1n5yAALLWvKYMpI5RTfNQyYRm-LqHKg7JqdJSBR5hTCI05d0eT3e30BoNy2Bh9iRqiKSI02KxvXxiEKaxVc35uogq1g1OmbnQotiOTaDmlq5QL0+v3+x4k3oYaM6tszIQT6zpcHj+FqI2nUGCtI7UTaeYFLJiGdo+eVgBKYEJqEwxPXrfp7cEE8Tvz5PMKhSCoCgyKewppLsyb7DIoE2DI97lguBAADKoAAZk89DjBuP5bkkE7MoBppLIiSgQYO1i9ukJqTtYGQgTsyH4I+freBGWCYF+dLTPw25yMy0I7rk9TgkeoLVPB0gTkoVjzI43asXOFZ+gAYtgmC+jhzbat+-GzBOXxHssNDGGy8IFKeKjmOkORZDIijVPkSHNJKKGVkuLAkrpeEGXGf6qJCxpst2xz2AOJSOPUiyuqywI0DYGiKCp7EEMgJBhrxuqEUFkg-CBrK-KI3JUdFZjMsIqhWOZPzyKoaVqQQAAiwQjGqvoauEuEvPhhmCV8SjwkJVjQsBp5qLFKjWMmQmInas1uRcZZsc1AAqYCPII7CoIIRAAIItTlm4CURwUKNoig1LZMgzaed0LFowJCjytlGk1qH4phmFBAETDkrgoy9S2fGBROkhJeIqjwcm3YqFJ5m7ssj2usK5rXZ9voSBG3pgAACoDcAEAdvnYJhJChP4UBKkwEb+CwTC9OSIwQCdBFnSI4gVCBWRgRYzpRYgmRFpCqQKDCuSprYWNgBIsARqgADuhNkMTpOcBTVM0yQdP+GAXRMJwkDswNRHaHRqiMRk3ZwkLCDOZyFQWFNwK22yTQrbOEjeHWkbEGQlCYL74ZRiD+lg+2V6mLNNCzea3JiFm8jfCmC1w4x5lpSH9YRq17VgGq2IyqbcaS7aRZ5ox9qIuVQjVJISz7EltRyNkSxyNnft53cGD6xAHD+BAvQku0oah6X7bQoCe4WHdM31PDfJ2JCOyMeY1VaElKhd6HPvdwAkqhmVhkXOJ4v4xJk+QJA8eHMYc4kmTJs7tkdylsi6IOtQ5qmqjGo4JytRd6533qHI+lYT6FyCMXC+itR4AC97i30noRTIbdbRQhSAUBiCNBwpDkNIWqHJuwwk3iAyMYDc4QL9EQbgsB2BKjwP4eB2AkF4lvkPbADDA7Az0g-M2mQeTfAUgcKaI0JyTV+JCbIW94oijvO5D0bEc6UNURGGhxB6GMJIMwq+nAb6YC4TwigfD-KRzQVkRM8hbqMR5LYRQkFZrSCNBOWyWRyFKNWnOdRVDIyaLobgBhTDcD+AOgAIW8P4AAGqgs6mQ8yyTEaIQEtlgRSTENCRY-8gR1AUp7FE3i-ERmKQE7RISwmRP8AATTiU-V0hDjA2JTHka6Ulxy2hmkeZyNRQoUJKeospQSdHMLIFAX0dThbl3mGYO0QJTg7C-iUREVhTCOlbvBbIzkCkeRUd3UpqFAnBN0aE30+B2Bh34f1Mu10cwKAyPaMCYF7Y0UdLaFI8xHSOlsMArx3tfGDMOeUk5DNSRMFxAPcgzMSBygHiYygkyHZQwkIlLQOxlAOEdFJeQiYkqyLZGYBoO8-kPgBYfIFwyKmsPYUMbS+h-C32wFAXAiKRaN3mOZIspUxqngRBUa61QCWTiEv0g5lYjkjNCfo7AhjMD0sZcy1lrpEzClsqIMa3J7bjUTAcDIKNrrEq9qS-ZgLxXAuYbAXAut-C7RiaykSFRhQ1EPKcV2p59jQTsOIcEadhSitNbQ81oTLXWttbU++1yp4OthFoZYvxSGnjhENYwIkzD3M7iSz0ZLwEUuOcwsAABHXonCzlQAuUqqaKKWmiHyBYIRp4ljMlUEJLQqQgRKDUP68lZrKUgqYDC2+vo75XIClG5xtkO3JnerNd1SUUXr3EJk4UmKu05p7Xm0JJIDaoGJLcIN7AqQRtHZYzJmDzDyHZE5TJD1EmnDsJkcyd0NCruoahF8ggtohF6CMVlNjFhAhbbVeCIFQT7EIcKXYMJgTXUvC+-xqFe6F0gIPYeo98Dj1zvameshQquu0ElYQoGsiQm5HHeEUIcidszXsveAatG9uYUrDg9MrU4ggJfW+vQzF9WPfEuO5QEJ2DsPMOojgpKTibeYMCZhlDzF+UarNJru1+kjGMwuu13yIoKLFaeQJ40lUcYOIEOZbKOmqv2NkxpRUHSVrogI1LkFGLhUMUx-g8CYVQAQCA3A5Z4DfGGCQMB2CCAcxwzAgh3OoC0yLIhk4DgQYNZNISEgMU0WrrUeZ1nbOD1C7S4xLnKBudwB5ggpISSoBJBIAGwwPMki6IFvwIWKtsMcxF4rUWj0WLOjRYjYkNC2BSYCOuDtkzngnFObQTkPZZbs5fUkBjOHOd4UVkr3mgZelwP5uWQXBDSsMW1jz0WYQjmTByEC1R1B4OiqBBY5p4bKCsPUECM3B57cW9wgrhdIulZJOVyr1X2C1fqztt74XItHcboxR6scNBFEHMoC253+sODzA4F7AQIlROiStzza3fObdQAFnbJAABGsBBB8AOx1kdXXEg0XNClrksgUx5hTFdxACY0g-AUOZR9SJqM+P2TZ2bmOYk45+39qrLMgcNeC6T8nlPweddyt16EOYIOpLhBOCw7PSjPIqEJCwUPMngnR5UqJ1Txd4421t2Xgh5eCH0FTo7aQ25snWLZE07TqjSEAeYGid1qpm9F5b77ZWKtS5qxV4HjWHdO6VzTlXdO1ffAzJyeCUGlkc+yAsTZ4hORKAUIohTNHQHC8HmM30VufM28J9t2P+BfTO+V6dZPDP24ZCsI6dBcPlnQi+IULehYljiDN5Xr77WJcR4BzL4njewDN8T63jnjsUs5DhMCFMAtdcOi+F612ZlTs7OUYLveB0mAA3paWi5e6GN4i8zXvzdeJAHW8OtQQdw7+CGv5c8xSeV-KCyQ1DfJor7A74OKQifLmT9bOTF6FL-JC4X5yr+A-634brsBT7-bS7R4v5v4f5Brf64hlq-48a04AHQQ0SnZLBpyWh94WwJR5gcjmQF5wG7Kn5l7Zb-RgoQoyrQqwofbLbfbW5P5E6Nbgokjgq4CQp8GCBLamKL5-7L6lDmSSDyAaDQzyCyC0Ec4Z6OpxrgizSjZm7iGSHSHkj8HwoT4lbh5YFR51Z24mE8FQrmGyECHyEJ6KGPwc4qEyLqHGTgTaGlALJ6HCgGEnBugC7FISBoR4DqaoDvgECqb4BxGaYt5eEIAphvKIgiRtyNAiZZiIiLDGSAipDJh3TLTwHGp7wxFAw2rxGYASAHy4AcAkwQDsY8K+QMyoB4B+SkH-4IDFhfAEpTiMTjj2wAamD2CTgzTGBTisEn5RE1EpENFNEtGkCmLDqeGCJHgLCtwRRtwlEZLJpZBCQzSZF1DzFFK+JLF1HvgSC4DR63zECYCsDQLdyIpGjZBr7ZA1BAicigjLDq6fCaDaAzQpCiqrEYGIpKBpC6pLDPIEZWBZhaC5iQY8gHDmYREl7sGUKQkECNhL7pGqohS2DCjNrGj5AAkgQpZxxCrolIyirrRqZ4jYCcIwrkB1GJERhqa3GbF9FKGZGNwOChRwiAgSYNrVRFGAisjmDXTQyMnMmcBskkgcm7SNHNEYGBKcC4Bcb6x8AfZjxMDlaYRaTcagz9F2A0QuLGCgTjQ2CGbRRQYpZKQzRkKgmGqVGKZ7xMnJEsnKmqmoD3GPGYDPGvEYYNhpFmxGhZI7FCZ2k0QNqxSpjgiunSmgQelsFRG9BSGoCDAwrsDqL4i4AP7rYiFyyv7v7ZneaCAdEFndxFmsqUGmC3hwgJwIjDbOQLCylxynC2ALK-CiovihDj68lck8kaZ8nmkCnVRClmhCSVQ5BJzURQTOmFj3KpC5CDkhAubjLLEv6cFjxBCf7sZ3AkhAwkgECaTNEKz+BbrDnz4fF6ZAGaqCjdiEaDhOTgguI5CZycj1DKBbn3m7m8n7l2ZjzNZQB4CtHsZ3k7lV4QV4CPnzDOnGi87whQRSTdK2jOQchfLVTNqAVwV7lXncJcTsZDlEUln4625-S9BMAf44Ayg1l4w1ndw1lgCwIHqIq9LlCbK2Bxz7DXRLklBTG7gH5u6pDCYZrYlREUUjkTkSAkBtFjwQBKjYS3nbnj5UW14BZ-SCB0WyFqXBawXj6PkmA54zIzLOS97bBG7pDiLGgaDqAsSRG+JyXz4gVKUDzoaqUkDqUmXz6YGR6A44F6UGW+XYSCABW7kfFOTlACUzlQ4gQOkc5Hi7iZJNwpi7CTgVGZm+JEAyjBjuXAUTljnJG8ncUzlxQJJCQSa-BOLq5GjmBTj8ZWauX7IFXVj+DFVV4KXl7alQB7pnmkiXl4CkW3CFVyjRUTKRlxiAgol5jmCCU3hYrw5HiELu43i-AiR1CiqdWyjdWaUeV9UHnoYIXFkHRtETVdXTWFznWPnUmF6MGwwHC66OB1AVD2A7G1BLr1B7WTWHVAW9X1ESAkUKyQD+D7VFVHW7naVlnyx+AGXkCMV4jMUYCsWhzsWcWwDWDcUHB778YrLXjaCQRwgkYbl1Du7pn-VdU9V7leVDxGXXUHW3Vw0E66WNbhVGUf6TVRUw0zWElRn7jpAphTSZElHciJrCiLA3io5Giuh2A00HV02eVXURUBCUA3X81+g2HBUy5hX0Xq083Vh81A1mkRwWndgmb2jepryZjw6pBPTgjLr5Bpb84yW+LI1gBkCBAsx+iNmAG0m3KVCpigizGQgXZOUwjnpYmeml6UKBLSroa2qsYQ2EicZ+jCHs1ywkAMISohIAByCokAAAahnVpicZMQ6EVOCH+eJm8pkuyByAnDYntdwEnYNSncXexunZgFxkFTPjgbnewPnSckXWxmXX3ebQInGIiMCNIP1tkASktDvhyMJJ7lkBlpyCKu1WfpwWgZKhpT0Lup-ugbAGzbbtWafZKnzcfQvtfSEr0VOekQ6MyEoJBktKQlNDerikBFlc5D8JcQgXvbNg-SCrloOvoBfc-lfQQRA3StFhYNhaqvnmSUlACbFHHDCO7hsK7WbmA3ovNjKpA9AwFrA1-qDnKkdomGsLIEcEmvbFNJIKoLSXGoA85Pg0Giws1jSpAwyjgMyqQ3LOQxuk1ogo5nKvbgIyyrNe2HPeUHNCLHqs6O+dFD4eFEHQxIuZw3fnNtfHwwqsWVnZfXtAQ7gLtkQ7Kk7oYxXclnmG4pkqFCTfDo4AsI7Y6CBG3AcJyDoxuoEFakwHUTEkIxICIzfSGvRbtBTog18NDLNICNXJiu6hyKnJNiVKyOnr44fRE0E9UiE2EyEjWQEztHtPoIg2kGij8BjCkLJqeFUJ9bUPkNCIKssFkxUoWsWkYj-vk6YwQR07fIQeciQc-WbPI5CENjYKmPYGcQ2l8fNSjtHdJXHTiSUv1QfRUv2kqNpFgD0-gV-ps4OtQLI4RPTtYtQZUBvjsDZEeCOGBLkT8MmDCHtdyeVetPUW5r9Picc91v1tILeLktJDMgCZOLaHaE5OaGKfBM8zyW8++B8+fQSVsbPb858uiT6vBOIKCHNKC48xC9VFC7vaAkQC8zAP4LC0YuTAi9YILci-PaiwC6cEC9-JWi6mrpC7HXlR1SS4XOS-C-iTIDS3Iyi-87UIC5i-DuILE2C2y-i5ONC68+85S-iSoIKyc8K2ZqK4y+K46Vkqy3i2yHK4Swndy2S4q581QGIKqz83SyK+i0y46UCDi+C0eLK1Rh7R1dgCqcDQkUkaSxOZVVkQ4JinUAk5LdRJXVbfUBi-YDyLlQsflZ617SBf1eBaPJBRdVdeQIm-BWm4hd84kKkpIFNGyI0943HNikaHuD9ZRswUeHtdm3uSm+hk+EpdgP0KNdefTFm169PZGoRCUYmH8Sw+C-YhkjNDImng+vUKyPWz2yBWDWRZDQ2yE7RfRcjdgExWwOjbWJjTAufAeioHjcsCijdrXN2MsEWFJPyBUKILYNUMqmjkayUkQA26rd5YNerbcMu8Y8-gbYZX5cFt217Y+RCHnqMcKGUFe5W2OBFBe6cLO0mwpV5SpUzUB5WLrYPfYX+0bWh727xgW5RosDhmKICI3dioxBUEeJkqoPeimPK6S+S-LADBwANeGfTEwNgOCiu8x8Fju7nIIBx+ChFphIIEDJACbPmxzuiSIjDIbtgm3LypWyBG9K6YiIUPRzyyDbADx6x3x5GAzJxzrb9tPtgVhzxxjfx4JwvuTKJ2AOJ2zJJ8oQUClqyHmHdhluCFmKsilJkM64cBy-G1yzC1p4jYE3p-TLVqOT+xzewEjSjbxyxeF1jfu7ADIFpjKaYOmddEoIxJkLrjVC4jYKBMKI839U+xIMS8F3cau2x-4JF6VRh6Z-VquwxRu6jVuwvkl3uzKKl6yqVFWm+ee1NMYMJYgExDLVykV8BI4P0v4A8XV5TBxOqAEBgBTMzP9ETIioIAnCOFM7UKRzRDvsYP+gSonGltNpEWQNgF0MMGPLatVkDCE1dzdyMCU4IFrHh2QQMSkCis-Ajt0mLe0htbK7AU5HVGlM97d8nbmQ90Z5Lph-VpD691Ex942Y3EWG3PMPBPE0JKCMAZ9W-OaM6NshD80S93d7mVtAaehuF092T8MAvlE+Fx8T90wVNMNMaLMao0YF+YcBlQJSPkAw+EjxT3qdT4NbT413YYj-T8j3tMz45+vHuNdN8lrrYFi4ASkMCFR8-K2mlOfpfuBT9H9AzETCE1hL9H4KrEDAdAwu4Fps4naNmHdLILMfBIjKLPBAsnptBklPr0gfoEb5bxt2rAPU1xIBb39Nb2ALb+wPb4r84kJM3TsLqnqjvp2aYEaPt8xG4v74b+hi8dhCE4X+wLH-H1a3Tj8IsE5XdH8FoJyNz6UJyG45RJqhezvTJQb3KmPCX2H9LxICX2X+gFplXxk0sDscukJMNgUHdKYOaNATrqlJEV34HzT1xNpCu+v5gEPw5xXxzpWzYJleZHCNmORwsHijDJkmmtyHn932v9xH3yFVh1vzvyPzqutcqikKkB8tihdNyFNAansRNBmgDxDAPACiBsEkWv4LXLaDKLaB044gLPEkEP6okamVkJagFyKRqQoBeUSmrANdS1o7QiAgEgcFzDYMpsygJqrLBxh4xo+4AkZoFEvD4CaghAg4PUFPAp5GC57IEEsFuTUCFYysOgTgM5hrxcwTlJKHQziy8ocgRHVCrNBP5Vx+kwgxILkRRQIhQIOeFMEiUHCCAA89kBEKVH4rOU4MGiBcMoOFiIhmG8-UQOyA9g2UEAjoLsuJDU5FgxwZueBvlkELtZzBDsaqE7UXLwCGI9giFmkGMBW044GgVIAS3dYgNXsljd7JYRxw+DHAoETLo5VI6LNAizfZkHdFCjPxckZwcrms1FzY5IsyQp8rsDAh5c246+ewaSQ2r-wzMmuJfjEI4Ii4qkoebwfyXSKOAbm4iBwPHFgipBvcAELpM8lmgOIlmnLWIQEBHJlDuhgidtLaBNy2BG6baF5D4RhAANfg0bIsNZgD4oEiCN+MxuwHKF0sEw0pO6DsPT4vxn4DUL6lr2MLcEpCvBcwp4NczzCGBU8OoDmBojzB-g2RNTtihkh4p6h2CBpKKhuITkfB8EXIJ9Rg7bxte9g1MOfzyBQxTinwSEbERAqQkYR3jeEUpERHyCswyWDIJyAxRGh36QvL0qAihEg0HidWW+D4LsAfUFabsQEjyBSoIAZk6QNuMmVSRFRqR8dEpLiIWFxhsEFcF0Ffx2DMRk4hCFkenEP5whj8VxfZD6RgB+kjE7JOojCIaCwCbS0ZWQAmQlbDhkyDkYbslTjaqjvSipVklqJVJ1F1SHAPEa6H1GSV4yXI6eDmBg6pl20tkBUr6SVL2iAyQZRkZgBdFpA5k7o9PMaOiinA3GLpQ7n6IzKBc94VZXMrWULL8QZ6U8dQDqm1wWQYI-waQbyMeaUiHkQEQivJXqK6jjufFf3IJSubURvk5NdFiNB6RVjjqINJthLxCDcATyFWc8syJQH8xWQW+MwJIg-JjhxmccLQPij97lcVaJ1MCmdVzbZi+2Z0LpJIAAwpISuriKSFoVkgpo0kjsHkJ2JKog0F2ENOmsyMFSrxXe4EY-sNiAQ6okoOCZpu4hVHANQES4kGshx8pM1bqt4lOIy0lhW1sgq9F+PcLAzrUBy5XKGnKF-HvhdR3Ib4ITXMjE0kBMIVIZBhK7i0EQStaGmbWTanVBqp5IcWKPbCWkcweKPFISmo6QRpE3IZ5M3RAg+pCJiE7WiRJXGDVzqt46RBhOSiLQmG7qL4vCD-KLpJwQiDiYDSIrzsxq4NdjAhNknj5bxxoIjjuLAgphJoFHIROLFsCwgAK8EgGkhIaIM1P2mtFmtrTUnso4Q79aEJLETRLBU4icFnJK2iHLMoiXtH2rAD9rJCDUKKc7B41VQpBQMX5TJMVExQn93ank-Ku3SIbQ85u3dDjFPXKH7AZatcI8GKU3r10qoawBeIbhsBTDUxbQweGYyPo7pC4Jw+gRbSUKOAZ4U2V6kwQ7SN8YMOYL6paSBAgQtA1gNpuAx4YSMSgXwtBFyhCiTgXYCSe2KBGZCFBq2awNOH1MIb6M6U5QhqQjgmmuhGGNoa6AnE+Qww9hRQ-euVPgbIFDGq0nIQjiWpXpNUvKOEd1Kv4XtEoKY60aVI1pcNKG8qaRudLGk7ETQicYIdhLUFbJuwpGNeItODQBMgm0SNKb8L+GzIek10DsuNhvZWBjgBxAVODP8ahpcy1SGGTLT-KylqgiMupqkKLDDdMUcpaEJjP6ZdMjhEYb6Y1KunGgbp8OHIEMTuZpJBKEsTGQc22bhjKJI0icKYB+FXC5SNpGyPkDIHHh5asaK0d+ONZVcKWv0GEfCCLYXMUgOwycSUCabLDTgnI5Mk6gQ7et+Zw0s6DdF2Kns3x3-S9tRERkDdlA3eLIO-SNmNtSJKoNccOMKKTpUksceqtRAKCJhLS9gBwOOGBAuzuJkwZtq236CezCErIV0IhCz7sDqIl2FLKIGb7FgG44chSleKUkNtgJewWqmBA1k5UMkQs6jlBnEQ-xipL0hOq+yQ7KUAJAHL9j21vGVtN4VtTZLsFG5BFEk6MBaLkBqEzt4JJrclj4IGy7Fvk9QJNNVCzCVtKMxoCKGIjllVEiWo8rTjp0PLdwDO4KcebsFhJTzUcmRLFg4DoiJQrAYEfbhp1NbVdQutXerjWIFndZMk5QMwBvDsATgMgPc1NIsBwrpg3ODgIUSszm65kPuPg3QdIhG6eMZomU58S-A1k2Ajg5ofrEAsUqy9ResPHwYkh9S10WRrvaoO0gKhUF1AP1GqKT2u5Q9O6lPfUgwi3mhwfBILaYtyBtJFcjQjfNtDLQGGPQyRK8z0CvyD4m9MFT82YCkMdSphp2j2BMIjBtBhQJMSaWEb1OX4B8e+WEU4cIqEDWV7IuCtuNCCdkvI-yzpFJGTLXhutPJ-C+-tpHAVCUDcU6G8DP20zYp1JOwHnD+XvRsgXALgIAA */ + /** @xstate-layout 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-u+1vzXM7OCDMSxIK-FUmeB0kgrC5Ght8+EVhBlHTdmUgIoq2HBKpQMMJ-g8A4VQAQCA3AwDelwF+cMEgYDk0y5ozAggCuoGCy5Mo0NoTRLMByJGQIDQ7Ai32JD2QUtpb3nV8VITcuUHy7gQrBBiTEyJBIQGgxCtEg6NVvwghxswMa7N5rUHcp01a6aETWM5ipCWD18EZh8j5HMCkpYI30v+KgVonLeiZtzZK8DcrlWys1cEJa7AQS9uFZa3MGqx4zBjUzqFJGCMIRxzjmyacvK+0-oPall7wOgmTc+01+bRJFvLc1mtjbgPce7aaxDu0KZbBaCUKsLGSNQJV1NEcVQNpgQ7me3vCZtSvtFZ+2VvA-3NvkxIAAI1gIIPgYODsQrM8dgUIU0OgUdG9VZ5Qq45BY42xdvb9leaLdj-nVTBeE4W6gJbK32Dk4l4IaXsv5c08O+dRIcUYW1FTDkHsaT1WiVmoacQNt2ShWG9+1TWPRsBAF5MoXxXSt-dQFVwHzvBD6AVxDy29QGdDnHo1VZNE2tVESfdX3fO48W4T1b4nNvSerZtxTrbGes9u6V9Bz3FRJDCjsKaWo6ZoarORqYFYwobLKGnHs9aJuY8vYuX6RPIuU9p9b-gP02f3cINEj36QaCYqVwyEULY+QNA-GXeFE0sd0fG6GRIM3ARF-9zryTu3Dv08b4Ix3iJR3u+FnSFEFgjNGQ3ECRnZFzFTDeUaiPHuhSyYEBklSnTBTAwAzwHYCT1+zF1TzKyOm8E2kEHuDQNwEEGQPBV-w9131kCYi0DyENmXiUED1ImzVMCHFsFsGTgwXgMQOBWxGnRViIPNRxCJzfzJ2bwf3wMIPA1IL4JnW311jiirh3AxjmFQUUCRVV0nBLF+B7AdBn1yUOUf1ViJWxFJXJUpR0Smxf320wNFwqxwMd0JSJGJTMNJCJEEA+zCS307z-133WQKEwUFCUFTCSVIi+HIjQxOEnFOFjir2MOcNMJB3MPxzy1fwb3f3EMBycJcKSLcI8MsL0W8IoJ31Ina1MGo3ZGbUklCNAixmkGZCiOyBiKN1n3v0wjwAC1QG-E3kjH8xjS6NgR8MoNIjkyYmMH3AQnMEyGXifjnT7HSTsDqlAkGXaOBn6O-AkH-lwA4AIBa3EAhAxQtBzGZBP0QF9TzHMGLAxixg4ijznx-lWM6I2K2J2KoCbGKIUIcAUhOESgH0ZzsgqkqFMDOFg0cTNGcTuLaI6PWMwAkAADlUB-ACZUB0DYBJYIADNdFfJVYUScRgsSw7RfVbZbpzQ6MKpYRUllAYozBgQLMVjoTAtYSESkTcT2A0TSAwlBiPioVUwYlaC8gbIzgzRsxuFNAoRZA4sDVBkXiMDrkFAoYchFjbATQRQzwb8xiAQJxpJx9pTtjZT3jTMu8SgEQfhREdhM4LRHp7oFhs0oRUhB9BlNp-McRsAtEKVyB+iei+jGTrk0VyIEk5hagzQ1hQiEp0h2tqgKh4kPMMdo8f5ugSVESsT2AClcRcBbDV9cDJCEyStBBkzUy5V5CoUUwxxCx4RbYBQNAV0ziCgeEsM0FIJjxBkPxQhn8YSvT8AniuTDTfCwjcgx92Q0cslnNzZvhlB1BQJJzWQWiDCi0WzctLkuyH9Y9j4ggiCDN7giRgYiQCBdJtiXZ-AgNWyv9fToRRMTiOQ3RUh1CKpahJARQLAzgBRPpITDl5y2zGTlz0tj4bcZU8B0SDMjyFyl9fyoA8BTzjh7R5MdUIplARTm4ex9x4p5pZhmyQhgKly9ydE+IDN3yv9diiyr4chCTHBexCxOczZbyUgfhwTUxewe9fhBkiApQQw8LFz2y-NOyYSOFdRVgFIvhaT9wH1hQyTEhIsmIMUqhzBjgHImKWKZQ2Kl9PzH9j5Nztzdy8BsK7h5LDz0Ln9fTIQDjcghRdVaMzwCgs0W5UhIRshljXyi1mLgwFK9Kv8YSvzxgBNQL-yjoMTtKnLdLjz2KvLCyhiSikp5454Uk7Nqh7JjA9wfkrAHBbL8079DlHK6xFLMLNKXZIB-B0rWKXLFyCLQqFDsg61QI31VBoZ8gzwDVcF51mNMllNYz7jpFyA-QyBAhNZ-RhNqDHBOxaCOR3NTibkcFdhVDG07BtBmrUqHLuBgcBNY09Ncr8QjN-QV9sCqsSBFFh1fE4S5RIAAA1NalrbhayTsByXNaSkfVMKHAUe6ZNRqawJi+agJY+Jag6gzVazAYzEQ9IsQ9bCQba9gXas5fa-TY6n6kzMGXspNXMRdP3fIDkTVVZaSiEDIR87ndMOIwQkdIDLoUDXG3xNkjMzasrXMoms5QQfGkDAjSm9A06g0fBfqnQ48KTJOcIwA5kFYBCTFW4zze-Iw+mvxHbCVUm+wqrCm6Q0Wm1FrWEe0O2Wod+SiR6BycM0QKoM-aoHGzTKnMWjaiW8mg6YWoHN6oJWWwikiH5CIoqOYR1HYFZJOS6xSC0aETZGknW4g1RX8sVa1W1HAWVcW8XKW4g7bH2rLG1J3AOkK7kwCZGO0b5fIfcKImEcy2shyAvM-DOW8T2oQ17K1CVKVaOoOhwkOoQ02t7CVKOmVGOns4YhEbhBwCoY8KwaiFIaKaqL4I4KeAcZeW-Voww2PVAvOstJgfo2pEuyW426Q0eimOXFrYEe0TID6aEPsWwDNaoGqGxCk+KVYXOkdUe8eyZSeo2qQ0O2e-aTPOWqGUCUQaEG0Y8VtXsRNYi4M44FSfesZMAcdSdWQyME+iQMu8NQjH+hrMghe+YV2z+PilMByWqrVNgsqd6YESCT+oFJgU9fSLAABoB3xQQDBhULB7smG+u10LpNuZnPPLBJOVVFBdzLIB5Gagehy3orizaAY4q2Oq23rC-EsJKu09mjVUsdIBCfYC7TdDyeyg9IgVhmAfwdh7ot4kq+MHsGTXNU0fIAsROIR-IERxCcRu7fQwtaR2R-uBRzAXY6wZRuOnpMfJYI4NSfsaLXRlaMRxOjDJi0x+RjhqgGQaxkiOFXMKEYwa-N6ZkZx+eUR1VVeBxzxvo8x3YlQfxumVQiEX4eqWEWoBCMkoRvsaOVFHmtBZqKRn+GR+JnxsQZJz3VJh6jJuod9HJ2ZZUjZE0ayrGDdJh2c6R7AIkdqrsjsuRn0y2i6cSjQJxQsaS+6aspIKjQ0QS2wM0ESpinpvptylSzyo+MC9MnyjclZkCzZ8C4Z60PfcPLnD6R0FDXfKON1CY2OUKKCZZ3ppSgY9yzgATN8EgXeXoDS-cgQvZ6Gi+Xs+wBCdIRq1YTRpgu8b3DINg50VjR51Zz8rCnKgzIgf5zhuukopOu0H1MZyCPQk0Wq10eq8faq1ITp4x0+fwXAREv2HiVUXjMAWWDWAGcWa5QQDBOxEI5eIEZVaZxCrmnYccXIWObOSEsgbADoQYd6xElbYGABiVqVoYOeul65C0NIY0XFtmgEGo00Pcbm0sO+SPAWxV6Vxa2V8WP623AGjbU15Vy+1Vo5pp+ebIIsd+DIURVZaihTYi7QO5nsTyO1mV4OPgSw1c8hBV7YpVgjS+2AchNVr4JiF0WaNMDkWkkcOdQ4PICTL5fu3JI6BAm1H836f6VWS1g28XXCP6PwT2YGI6RRdweVHBCqoV3mnYbIflnQsofVO81pl8gWgtxA4t6t1lr2K1xve3cQqt-6WtsAet9gRtp1m5RkLW34dJNBGo+CUxVQd1FMDnTyQdotgTTAXCDAithwk9vCedxdqpjsTegcNkEVoSyFk0e82DYwY8acDQCl+cQ9-QY+S9jA63a1pvQGwD699AdlrlJiAsc0+OFpVtcEUQBqD6L95eA9wt-9gTHK-SABnDzACD7WJdwQcKNreJf1591taggk2zRs79jDod7DviXD4Didh3fDwjqDudW8WOCjhD6xdg9IOuD1uj9DyEv94+ImEmMmOenjPD7oKXDoDgfB4mUOQjXePyTF3WDl3cB+DIZGBJaEBHBwMoJNeDUTn9r0CTgTKTtTy+uT1jjIwG2ABTpT8mJgVTmTnjdl5QA0PTzIVpocIz6xRCRNJxVDjQMTx8GljAeAKIY3Lhi6QQWEKGBCRxo8AheiHMdIGEewYy6oC0R2MARL6YIccid9dL+p4ULkWg+0CqkLEqEUIroWEWWduLkhkokQOob1OFPsDL6rpOV9eo5iYEWok4Zrl2d2NrkroQc0vMF6B7SoL982Fxxg28FIV0CeFxGb7kYlsZuKKqmS6ZwQGECSrGdQZSZCdjdxasHbgR-fHIOoALghRpyqY4NIbIJZDkFiF0FK5h+fMbcO+rFI6bJrO71uiSyMyYgRD1USRY6QSCTdHm7tSzuM6RIwvWkH6wwrcH3YPMRwVQLmKk9ugTzIUwXQ19+DPvOIgXGpIXcH26o0SszpHcGY6xFICyCfGiauAvGnmvenrTnk26nvFmk4btS57YF0f0zZeYicsVgWwehfVysHwXq+auCiFeB7dGEapGunTRuYGKdrbgm1Xg0FAQ8DdgXHi8VzGFrDdJpFacPRvPHML4c4Ep9Hoe7IxIslNwrHgXjroxfcSQB2iKCwCwB6VlULXIBQR7luIx-dB4hkgYu72uWTBwaoxY00EcFOFByM1piTPNyl6RR4tymUu7+oSAyEDPivCX5kdneYhg6HWS93ihEvz8ml9bGBHbzsOKxddYcfO217rnCSpnCUuTAZFviQNvl55k5E1E7vjlaQNSfMG0cfGriweb+wdyfpNjSfsv1XkiMCcM4yoEE4iXvISCqylMc0juePzHH+J0zsl0t03p-onbqZgqMrzQeoVMEarJDZd7u02OBIZBkOZJMgMF8gFk7u3Sb1Byn3CooRMDmWYGMRcwyR2mMZWagekyowlu+UEERp2BbrcoqoI4brhFjhzAhXIf3Lpj-GwHKUVy2HEINwA3I25ty3fdBPgI9a1RGC0zexqaQ4LHA7ar6NCoFWeYbF1mUAJUAc2EiGIVGrvelEFx45RFa+Z1RChVVUDH4qBRfChLQJebIscK-gTKmwJwTPxwiBqY4MPlvKOQcguyHYGkiiJyV-KOg78N320BwYe8V+aiKET4ovwu0eQbQOmH2AOCMqhVUQbCXEFgYtyxId-tDF5DuCW4ng8ytCHip9IkqOQTQQn2kT5VnKIgpcuEOCrRCdg9oOIfHVWAd1cw92PPPYFgzpD7+mQnSk4NhJ6DcqWQgwSEOK4H8LoW-WIQKA8FQgvBeAndtymPyopBkfTTqrAG6p3d+q3qZ+PmDLLTRBuJoH4M+wcB3gUgX6BXnNQqxvVzW1LT6oZihrg9dGOwFYP8ATgZAJeCMA0DyjLLftbwM5LQa82Hp41gMhNC3u10BbDFJIBodJuIDuhnYmCMWAqAhAYIiZMMaDFRDLS2AB8eSeQH4DATMB2ARM9mJOGcB+E2Bdg26PihgP+4-whautM2n7XB5wjfhiIyaBHw1QOR5gKSZMDCCREQiRaQPcVCbztTSDq05mEkTASVoYYYqScZNDVBsi7IsRhfDIRQnxFe09aLI6OsSJ+FcjygPI1INFEKF1BxyF2ZjAyMCBRox6saGpEcOD7KEYhCMc0hmiHD74e8IIqqjULR5iih6wtTUeWkRKTI9Rl4WEIaNUbDhrEygZ6E9E1J54xOmwgHgEDtHf0J0wSMgjKPhHAt5Rbqc-u6nXQDVokPqDIBqIIZnpMARw+ZE3SWDQwnyhYGaM-T7qWRKg8MOJmw2T4dDPcDkJ1OMRWhTEYW0WVXK42iYSM7+1oiQGiyeZdlcBm9fvNzQBC+djA+Y0TDsFzT9jryz1Sfh2MRYvM8hUgtgbo17HyAxxiFDNNc0LC3Nx8DzScf8zWb0CJBHzL5h8JkE2MFxKYPsQUCSyvcm4L8cCLC3T47AEWoQiQE0NRb-N5xBUM8UuIvEriQuerViJCCUhNEXE1LWlnLHaEwjAIJHI4DVCHBHE-cS8UIicH4q8Ik0-YOzCKK9BBtdhcrcCZ8JKIAFk6+4e+r2Hpy6tgRPxdQH3VUCo9KwWEiQbGh2hhtsO5CHbo72nCRZxENgFiK917BpA7wbkZYH0IY5HsJB07NEDhJ24kd1AczdiLmnGixwespo0qOLxWjaBWxlYazhIMA6SSyuPXSrneRGr6N98E+L9qIEyTCSsOEg-DjpJ3B6S-W-XQyQoHmCap+sqYAEMlnE6YdJOnncmPZw042TyuaXeyVV0Mkpp4RjaOgsC15guAgAA */ id: 'Modeling', context: ({ input }) => ({ @@ -1798,9 +1836,8 @@ export const modelingMachine = setup({ }, Fillet: { - target: 'idle', - actions: ['AST fillet'], - reenter: false, + target: 'Applying fillet', + reenter: true, }, Export: { @@ -2504,6 +2541,11 @@ export const modelingMachine = setup({ target: 'Center Rectangle tool', guard: 'next is center rectangle', }, + { + target: 'circle3PointToolSelect', + reenter: true, + guard: 'next is circle 3 point', + }, ], }, @@ -2606,6 +2648,29 @@ export const modelingMachine = setup({ initial: 'splitting sketch pipe', entry: ['assign tool in context', 'reset selections'], }, + circle3PointToolSelect: { + invoke: { + id: 'actor-circle-3-point', + input: function ({ context, event }) { + // These are not really necessary but I believe they are needed + // to satisfy TypeScript type narrowing or undefined check. + if (event.type !== 'change tool') return + if (event.data?.tool !== 'circle3Points') return + if (!context.sketchDetails) return + + return context.sketchDetails + }, + src: 'actorCircle3Point', + }, + on: { + // We still need this action to trigger (legacy code support) + 'change tool': 'Change Tool', + // On stop event, transition to our usual SketchIdle state + 'stop-internal': { + target: '#Modeling.Sketch.SketchIdle', + }, + }, + }, }, initial: 'Init', @@ -2730,6 +2795,19 @@ export const modelingMachine = setup({ }, }, + 'Applying fillet': { + invoke: { + src: 'filletAstMod', + id: 'filletAstMod', + input: ({ event }) => { + if (event.type !== 'Fillet') return undefined + return event.data + }, + onDone: ['idle'], + onError: ['idle'], + }, + }, + 'Applying Prompt-to-edit': { invoke: { src: 'submit-prompt-edit', diff --git a/src/main.ts b/src/main.ts index 9b2422960..1750d8207 100644 --- a/src/main.ts +++ b/src/main.ts @@ -8,6 +8,8 @@ import { dialog, shell, nativeTheme, + desktopCapturer, + systemPreferences, } from 'electron' import path from 'path' import { Issuer } from 'openid-client' @@ -21,6 +23,8 @@ import os from 'node:os' import { reportRejection } from 'lib/trap' import argvFromYargs from './commandLineArgs' +import * as packageJSON from '../package.json' + let mainWindow: BrowserWindow | null = null // Check the command line arguments for a project path @@ -181,6 +185,44 @@ ipcMain.handle('shell.openExternal', (event, data) => { return shell.openExternal(data) }) +ipcMain.handle( + 'take.screenshot', + async (event, data: { width: number; height: number }) => { + /** + * Operation system access to getting screen sources, even though we are only use application windows + * Linux: Yes! + * Mac OS: This user consent was not required on macOS 10.13 High Sierra so this method will always return granted. macOS 10.14 Mojave or higher requires consent for microphone and camera access. macOS 10.15 Catalina or higher requires consent for screen access. + * Windows 10: has a global setting controlling microphone and camera access for all win32 applications. It will always return granted for screen and for all media types on older versions of Windows. + */ + let accessToScreenSources = true + + // Can we check for access and if so, is it granted + // Linux does not even have access to the function getMediaAccessStatus, not going to polyfill + if (systemPreferences && systemPreferences.getMediaAccessStatus) { + const accessString = systemPreferences.getMediaAccessStatus('screen') + accessToScreenSources = accessString === 'granted' ? true : false + } + + if (accessToScreenSources) { + const sources = await desktopCapturer.getSources({ + types: ['window'], + thumbnailSize: { width: data.width, height: data.height }, + }) + + for (const source of sources) { + // electron-builder uses the value of productName in package.json for the title of the application + if (source.name === packageJSON.productName) { + // @ts-ignore image/png is real. + return source.thumbnail.toDataURL('image/png') // The image to display the screenshot + } + } + } + + // Cannot take a native desktop screenshot, unable to access screens + return '' + } +) + ipcMain.handle('argv.parser', (event, data) => { return argvFromYargs }) diff --git a/src/preload.ts b/src/preload.ts index a9e5b1cc9..6a0188004 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -12,6 +12,13 @@ const resizeWindow = (width: number, height: number) => const open = (args: any) => ipcRenderer.invoke('dialog.showOpenDialog', args) const save = (args: any) => ipcRenderer.invoke('dialog.showSaveDialog', args) const openExternal = (url: any) => ipcRenderer.invoke('shell.openExternal', url) +const takeElectronWindowScreenshot = ({ + width, + height, +}: { + width: number + height: number +}) => ipcRenderer.invoke('take.screenshot', { width, height }) const showInFolder = (path: string) => ipcRenderer.invoke('shell.showItemInFolder', path) const startDeviceFlow = (host: string): Promise => @@ -160,6 +167,7 @@ contextBridge.exposeInMainWorld('electron', { version: process.version, join: path.join, sep: path.sep, + takeElectronWindowScreenshot, os: { isMac, isWindows, diff --git a/src/wasm-lib/Cargo.lock b/src/wasm-lib/Cargo.lock index 7bac619b0..44675d648 100644 --- a/src/wasm-lib/Cargo.lock +++ b/src/wasm-lib/Cargo.lock @@ -121,9 +121,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" dependencies = [ "backtrace", ] @@ -176,18 +176,18 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] name = "async-trait" -version = "0.1.83" +version = "0.1.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -204,7 +204,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -443,9 +443,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.21" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" +checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" dependencies = [ "clap_builder", "clap_derive", @@ -453,9 +453,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.21" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" +checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" dependencies = [ "anstream", "anstyle", @@ -474,14 +474,14 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "colorchoice" @@ -665,7 +665,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -676,7 +676,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -737,7 +737,7 @@ dependencies = [ "rustfmt-wrapper", "serde", "serde_tokenstream", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -748,7 +748,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -791,7 +791,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -829,7 +829,7 @@ checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -990,7 +990,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -1086,7 +1086,7 @@ dependencies = [ "inflections", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -1494,7 +1494,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -1819,9 +1819,9 @@ dependencies = [ [[package]] name = "kittycad-modeling-cmds" -version = "0.2.79" +version = "0.2.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a9cab4476455be70ea57643c31444068b056d091bd348cab6044c0d8ad7fcc" +checksum = "65e34a8eeb4fff5167666d1f2bc36c95d08ab3a0f736a02c8d33a8cde21cfd8d" dependencies = [ "anyhow", "chrono", @@ -1839,6 +1839,7 @@ dependencies = [ "serde", "serde_bytes", "serde_json", + "ts-rs", "uuid", ] @@ -1851,18 +1852,18 @@ dependencies = [ "kittycad-modeling-cmds-macros-impl", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] name = "kittycad-modeling-cmds-macros-impl" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6607507a8a0e4273b943179f0a3ef8e90712308d1d3095246040c29cfdbf985b" +checksum = "fdb4ee23cc996aa2dca7584d410e8826e08161e1ac4335bb646d5ede33f37cb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -2012,7 +2013,7 @@ checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -2311,7 +2312,7 @@ dependencies = [ "regex", "regex-syntax 0.8.5", "structmeta", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -2325,7 +2326,7 @@ dependencies = [ "regex", "regex-syntax 0.8.5", "structmeta", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -2365,7 +2366,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -2423,7 +2424,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -2553,14 +2554,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -2612,7 +2613,7 @@ dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -2625,7 +2626,7 @@ dependencies = [ "proc-macro2", "pyo3-build-config", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -2687,9 +2688,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -3160,7 +3161,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -3200,9 +3201,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.216" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] @@ -3218,13 +3219,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.216" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -3235,14 +3236,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] name = "serde_json" -version = "1.0.133" +version = "1.0.135" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" dependencies = [ "indexmap 2.7.0", "itoa", @@ -3259,7 +3260,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -3280,7 +3281,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -3429,7 +3430,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -3440,7 +3441,7 @@ checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -3462,7 +3463,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -3505,9 +3506,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.87" +version = "2.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "46f71c0377baf4ef1cc3e3402ded576dccc315800fbc62dfc7fe04b009773b4a" dependencies = [ "proc-macro2", "quote", @@ -3531,7 +3532,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -3639,7 +3640,7 @@ checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -3650,7 +3651,7 @@ checksum = "22efd00f33f93fa62848a7cab956c3d38c8d43095efda1decfc2b3a5dc0b8972" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -3762,7 +3763,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -3904,7 +3905,7 @@ checksum = "84fd902d4e0b9a4b27f2f440108dc034e1758628a9b702f8ec61ad66355422fa" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -3932,7 +3933,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -3993,15 +3994,15 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "ts-rs" -version = "10.0.0" +version = "10.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a2f31991cee3dce1ca4f929a8a04fdd11fd8801aac0f2030b0fa8a0a3fef6b9" +checksum = "e640d9b0964e9d39df633548591090ab92f7a4567bc31d3891af23471a3365c6" dependencies = [ "chrono", "indexmap 2.7.0", "lazy_static", "serde_json", - "thiserror 1.0.68", + "thiserror 2.0.0", "ts-rs-macros", "url", "uuid", @@ -4009,13 +4010,13 @@ dependencies = [ [[package]] name = "ts-rs-macros" -version = "10.0.0" +version = "10.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea0b99e8ec44abd6f94a18f28f7934437809dd062820797c52401298116f70e" +checksum = "0e9d8656589772eeec2cf7a8264d9cda40fb28b9bc53118ceb9e8c07f8f38730" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", "termcolor", ] @@ -4116,9 +4117,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.3" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -4194,7 +4195,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -4255,7 +4256,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", "wasm-bindgen-shared", ] @@ -4291,7 +4292,7 @@ checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4334,9 +4335,9 @@ dependencies = [ [[package]] name = "wasm-streams" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e072d4e72f700fb3443d8fe94a39315df013eef1104903cdb0a2abd322bbecd" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" dependencies = [ "futures-util", "js-sys", @@ -4609,9 +4610,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.20" +version = "0.6.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "39281189af81c07ec09db316b302a3e67bf9bd7cbf6c820b50e35fee9c2fa980" dependencies = [ "memchr", ] @@ -4672,7 +4673,7 @@ checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", "synstructure", ] @@ -4694,7 +4695,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -4714,7 +4715,7 @@ checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", "synstructure", ] @@ -4743,14 +4744,14 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] name = "zip" -version = "2.2.0" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc5e4288ea4057ae23afc69a4472434a87a2495cafce6632fd1c4ec9f5cf3494" +checksum = "ae9c1ea7b3a5e1f4b922ff856a129881167511563dc219869afe3787fc0c1a45" dependencies = [ "arbitrary", "crc32fast", @@ -4758,5 +4759,5 @@ dependencies = [ "displaydoc", "indexmap 2.7.0", "memchr", - "thiserror 1.0.68", + "thiserror 2.0.0", ] diff --git a/src/wasm-lib/Cargo.toml b/src/wasm-lib/Cargo.toml index e3c751528..9d4c257da 100644 --- a/src/wasm-lib/Cargo.toml +++ b/src/wasm-lib/Cargo.toml @@ -16,7 +16,7 @@ gloo-utils = "0.2.0" kcl-lib = { path = "kcl" } kittycad.workspace = true lazy_static = "1.5.0" -serde_json = "1.0.128" +serde_json = "1.0.135" tokio = { version = "1.41.1", features = ["sync"] } toml = "0.8.19" uuid = { version = "1.11.0", features = ["v4", "js", "serde"] } @@ -40,7 +40,7 @@ futures = "0.3.31" js-sys = "0.3.72" tower-lsp = { version = "0.20.0", default-features = false, features = ["runtime-agnostic"] } wasm-bindgen-futures = { version = "0.4.44", features = ["futures-core-03-stream"] } -wasm-streams = "0.4.1" +wasm-streams = "0.4.2" [target.'cfg(target_arch = "wasm32")'.dependencies.web-sys] version = "0.3.76" @@ -76,7 +76,10 @@ members = [ [workspace.dependencies] http = "1" kittycad = { version = "0.3.28", default-features = false, features = ["js", "requests"] } -kittycad-modeling-cmds = { version = "0.2.79", features = ["websocket"] } +kittycad-modeling-cmds = { version = "0.2.86", features = [ + "ts-rs", + "websocket", +] } [workspace.lints.clippy] assertions_on_result_states = "warn" diff --git a/src/wasm-lib/derive-docs/Cargo.toml b/src/wasm-lib/derive-docs/Cargo.toml index faf3b5559..95bae51e0 100644 --- a/src/wasm-lib/derive-docs/Cargo.toml +++ b/src/wasm-lib/derive-docs/Cargo.toml @@ -18,12 +18,12 @@ once_cell = "1.20.2" proc-macro2 = "1" quote = "1" regex = "1.11" -serde = { version = "1.0.214", features = ["derive"] } +serde = { version = "1.0.217", features = ["derive"] } serde_tokenstream = "0.2" -syn = { version = "2.0.87", features = ["full"] } +syn = { version = "2.0.95", features = ["full"] } [dev-dependencies] -anyhow = "1.0.93" +anyhow = "1.0.95" expectorate = "1.1.0" pretty_assertions = "1.4.1" rustfmt-wrapper = "0.2.1" diff --git a/src/wasm-lib/derive-docs/src/lib.rs b/src/wasm-lib/derive-docs/src/lib.rs index 84f28badb..31f019cc1 100644 --- a/src/wasm-lib/derive-docs/src/lib.rs +++ b/src/wasm-lib/derive-docs/src/lib.rs @@ -832,7 +832,7 @@ fn generate_code_block_test(fn_name: &str, code_block: &str, index: usize) -> pr let result = match crate::test_server::execute_and_snapshot(code, crate::settings::types::UnitLength::Mm, None).await { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", #fn_name, #index), kcl_source: #code_block.to_string(), })); diff --git a/src/wasm-lib/derive-docs/tests/args_with_lifetime.gen b/src/wasm-lib/derive-docs/tests/args_with_lifetime.gen index 0428342cf..4b173c3bf 100644 --- a/src/wasm-lib/derive-docs/tests/args_with_lifetime.gen +++ b/src/wasm-lib/derive-docs/tests/args_with_lifetime.gen @@ -37,7 +37,7 @@ mod test_examples_someFn { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "someFn", 0usize), kcl_source: "someFn()".to_string(), })); diff --git a/src/wasm-lib/derive-docs/tests/args_with_refs.gen b/src/wasm-lib/derive-docs/tests/args_with_refs.gen index 7e2a50b6f..cb2ea7782 100644 --- a/src/wasm-lib/derive-docs/tests/args_with_refs.gen +++ b/src/wasm-lib/derive-docs/tests/args_with_refs.gen @@ -37,7 +37,7 @@ mod test_examples_someFn { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "someFn", 0usize), kcl_source: "someFn()".to_string(), })); diff --git a/src/wasm-lib/derive-docs/tests/array.gen b/src/wasm-lib/derive-docs/tests/array.gen index 7150e6d76..50f9dde51 100644 --- a/src/wasm-lib/derive-docs/tests/array.gen +++ b/src/wasm-lib/derive-docs/tests/array.gen @@ -38,7 +38,7 @@ mod test_examples_show { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "show", 0usize), kcl_source: "This is another code block.\nyes sirrr.\nshow".to_string(), })); @@ -92,7 +92,7 @@ mod test_examples_show { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "show", 1usize), kcl_source: "This is code.\nIt does other shit.\nshow".to_string(), })); diff --git a/src/wasm-lib/derive-docs/tests/box.gen b/src/wasm-lib/derive-docs/tests/box.gen index e8f26f506..06f4ff516 100644 --- a/src/wasm-lib/derive-docs/tests/box.gen +++ b/src/wasm-lib/derive-docs/tests/box.gen @@ -38,7 +38,7 @@ mod test_examples_show { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "show", 0usize), kcl_source: "This is code.\nIt does other shit.\nshow".to_string(), })); diff --git a/src/wasm-lib/derive-docs/tests/doc_comment_with_code.gen b/src/wasm-lib/derive-docs/tests/doc_comment_with_code.gen index 718564458..04b74ec1b 100644 --- a/src/wasm-lib/derive-docs/tests/doc_comment_with_code.gen +++ b/src/wasm-lib/derive-docs/tests/doc_comment_with_code.gen @@ -39,7 +39,7 @@ mod test_examples_my_func { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "my_func", 0usize), kcl_source: "This is another code block.\nyes sirrr.\nmyFunc".to_string(), })); @@ -93,7 +93,7 @@ mod test_examples_my_func { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "my_func", 1usize), kcl_source: "This is code.\nIt does other shit.\nmyFunc".to_string(), })); diff --git a/src/wasm-lib/derive-docs/tests/lineTo.gen b/src/wasm-lib/derive-docs/tests/lineTo.gen index 57c0b2201..4506b61ef 100644 --- a/src/wasm-lib/derive-docs/tests/lineTo.gen +++ b/src/wasm-lib/derive-docs/tests/lineTo.gen @@ -39,7 +39,7 @@ mod test_examples_line_to { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "line_to", 0usize), kcl_source: "This is another code block.\nyes sirrr.\nlineTo".to_string(), })); @@ -93,7 +93,7 @@ mod test_examples_line_to { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "line_to", 1usize), kcl_source: "This is code.\nIt does other shit.\nlineTo".to_string(), })); diff --git a/src/wasm-lib/derive-docs/tests/min.gen b/src/wasm-lib/derive-docs/tests/min.gen index ace838d6d..f6a83722d 100644 --- a/src/wasm-lib/derive-docs/tests/min.gen +++ b/src/wasm-lib/derive-docs/tests/min.gen @@ -38,7 +38,7 @@ mod test_examples_min { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "min", 0usize), kcl_source: "This is another code block.\nyes sirrr.\nmin".to_string(), })); @@ -92,7 +92,7 @@ mod test_examples_min { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "min", 1usize), kcl_source: "This is code.\nIt does other shit.\nmin".to_string(), })); diff --git a/src/wasm-lib/derive-docs/tests/option.gen b/src/wasm-lib/derive-docs/tests/option.gen index 7f0157fe7..95ed6f310 100644 --- a/src/wasm-lib/derive-docs/tests/option.gen +++ b/src/wasm-lib/derive-docs/tests/option.gen @@ -38,7 +38,7 @@ mod test_examples_show { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "show", 0usize), kcl_source: "This is code.\nIt does other shit.\nshow".to_string(), })); diff --git a/src/wasm-lib/derive-docs/tests/option_input_format.gen b/src/wasm-lib/derive-docs/tests/option_input_format.gen index a7b01255c..d7d3b51dc 100644 --- a/src/wasm-lib/derive-docs/tests/option_input_format.gen +++ b/src/wasm-lib/derive-docs/tests/option_input_format.gen @@ -38,7 +38,7 @@ mod test_examples_import { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "import", 0usize), kcl_source: "This is code.\nIt does other shit.\nimport".to_string(), })); diff --git a/src/wasm-lib/derive-docs/tests/return_vec_box_sketch.gen b/src/wasm-lib/derive-docs/tests/return_vec_box_sketch.gen index 6112fa879..2093acf64 100644 --- a/src/wasm-lib/derive-docs/tests/return_vec_box_sketch.gen +++ b/src/wasm-lib/derive-docs/tests/return_vec_box_sketch.gen @@ -38,7 +38,7 @@ mod test_examples_import { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "import", 0usize), kcl_source: "This is code.\nIt does other shit.\nimport".to_string(), })); diff --git a/src/wasm-lib/derive-docs/tests/return_vec_sketch.gen b/src/wasm-lib/derive-docs/tests/return_vec_sketch.gen index 3d8068323..352ec49a9 100644 --- a/src/wasm-lib/derive-docs/tests/return_vec_sketch.gen +++ b/src/wasm-lib/derive-docs/tests/return_vec_sketch.gen @@ -38,7 +38,7 @@ mod test_examples_import { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "import", 0usize), kcl_source: "This is code.\nIt does other shit.\nimport".to_string(), })); diff --git a/src/wasm-lib/derive-docs/tests/show.gen b/src/wasm-lib/derive-docs/tests/show.gen index c5199b395..d32d1b79d 100644 --- a/src/wasm-lib/derive-docs/tests/show.gen +++ b/src/wasm-lib/derive-docs/tests/show.gen @@ -38,7 +38,7 @@ mod test_examples_show { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "show", 0usize), kcl_source: "This is code.\nIt does other shit.\nshow".to_string(), })); diff --git a/src/wasm-lib/derive-docs/tests/test_args_with_exec_state.gen b/src/wasm-lib/derive-docs/tests/test_args_with_exec_state.gen index 9849c28ca..eb63bdfd8 100644 --- a/src/wasm-lib/derive-docs/tests/test_args_with_exec_state.gen +++ b/src/wasm-lib/derive-docs/tests/test_args_with_exec_state.gen @@ -37,7 +37,7 @@ mod test_examples_some_function { { Err(crate::errors::ExecError::Kcl(e)) => { return Err(miette::Report::new(crate::errors::Report { - error: e, + error: e.error, filename: format!("{}{}", "some_function", 0usize), kcl_source: "someFunction()".to_string(), })); diff --git a/src/wasm-lib/justfile b/src/wasm-lib/justfile index fe5963c11..66990d9ab 100644 --- a/src/wasm-lib/justfile +++ b/src/wasm-lib/justfile @@ -31,3 +31,5 @@ new-sim-test test_name render_to_png="true": {{cita}} -p kcl-lib -- simulation_tests::{{test_name}}::unparse TWENTY_TWENTY=overwrite {{cita}} -p kcl-lib -- tests::{{test_name}}::kcl_test_execute +test: + export RUST_BRACKTRACE="full" && cargo nextest run --workspace --test-threads=1 diff --git a/src/wasm-lib/kcl-test-server/Cargo.toml b/src/wasm-lib/kcl-test-server/Cargo.toml index e2ef73814..0055a4a3d 100644 --- a/src/wasm-lib/kcl-test-server/Cargo.toml +++ b/src/wasm-lib/kcl-test-server/Cargo.toml @@ -6,12 +6,12 @@ edition = "2021" license = "MIT" [dependencies] -anyhow = "1.0.93" +anyhow = "1.0.95" hyper = { version = "0.14.29", features = ["http1", "server", "tcp"] } kcl-lib = { version = "0.2", path = "../kcl" } pico-args = "0.5.0" -serde = { version = "1.0.214", features = ["derive"] } -serde_json = "1.0.128" +serde = { version = "1.0.217", features = ["derive"] } +serde_json = "1.0.135" tokio = { version = "1.41.1", features = ["macros", "rt-multi-thread"] } [lints] diff --git a/src/wasm-lib/kcl-to-core/Cargo.toml b/src/wasm-lib/kcl-to-core/Cargo.toml index c9a0276da..763c462f1 100644 --- a/src/wasm-lib/kcl-to-core/Cargo.toml +++ b/src/wasm-lib/kcl-to-core/Cargo.toml @@ -14,7 +14,7 @@ path = "src/tool.rs" [dependencies] anyhow = "1" -async-trait = "0.1.81" +async-trait = "0.1.85" indexmap = "2.7.0" kcl-lib = { path = "../kcl" } kittycad = { workspace = true, features = ["clap"] } diff --git a/src/wasm-lib/kcl-to-core/src/conn_mock_core.rs b/src/wasm-lib/kcl-to-core/src/conn_mock_core.rs index 161c370d2..9fc98b775 100644 --- a/src/wasm-lib/kcl-to-core/src/conn_mock_core.rs +++ b/src/wasm-lib/kcl-to-core/src/conn_mock_core.rs @@ -6,7 +6,7 @@ use std::{ use anyhow::Result; use indexmap::IndexMap; use kcl_lib::{ - exec::{DefaultPlanes, IdGenerator}, + exec::{ArtifactCommand, DefaultPlanes, IdGenerator}, ExecutionKind, KclError, }; use kittycad_modeling_cmds::{ @@ -76,7 +76,9 @@ impl EngineConnection { "".into() } } - kcmc::ModelingCmd::SketchModeDisable(kcmc::SketchModeDisable {}) => "scene->disableSketchMode();".into(), + kcmc::ModelingCmd::SketchModeDisable(kcmc::SketchModeDisable { .. }) => { + "scene->disableSketchMode();".into() + } kcmc::ModelingCmd::MakePlane(kcmc::MakePlane { origin, x_axis, @@ -105,7 +107,7 @@ impl EngineConnection { size.0 ) } - kcmc::ModelingCmd::StartPath(kcmc::StartPath {}) => { + kcmc::ModelingCmd::StartPath(kcmc::StartPath { .. }) => { let sketch_id = format!("sketch_{}", cpp_id); let path_id = format!("path_{}", cpp_id); format!( @@ -367,6 +369,10 @@ impl kcl_lib::EngineManager for EngineConnection { self.batch_end.clone() } + fn take_artifact_commands(&self) -> Vec { + Vec::new() + } + fn execution_kind(&self) -> ExecutionKind { let guard = self.execution_kind.lock().unwrap(); *guard @@ -414,7 +420,7 @@ impl kcl_lib::EngineManager for EngineConnection { id: uuid::Uuid, _source_range: kcl_lib::SourceRange, cmd: WebSocketRequest, - _id_to_source_range: std::collections::HashMap, + _id_to_source_range: HashMap, ) -> Result { match cmd { WebSocketRequest::ModelingCmdBatchReq(ModelingBatch { diff --git a/src/wasm-lib/kcl/Cargo.toml b/src/wasm-lib/kcl/Cargo.toml index 254085071..dff491f51 100644 --- a/src/wasm-lib/kcl/Cargo.toml +++ b/src/wasm-lib/kcl/Cargo.toml @@ -11,12 +11,12 @@ keywords = ["kcl", "KittyCAD", "CAD"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -anyhow = { version = "1.0.93", features = ["backtrace"] } +anyhow = { version = "1.0.95", features = ["backtrace"] } async-recursion = "1.1.1" -async-trait = "0.1.83" +async-trait = "0.1.85" base64 = "0.22.1" chrono = "0.4.38" -clap = { version = "4.5.21", default-features = false, optional = true, features = [ +clap = { version = "4.5.23", default-features = false, optional = true, features = [ "std", "derive", ] } @@ -54,13 +54,13 @@ schemars = { version = "0.8.17", features = [ "uuid1", "preserve_order", ] } -serde = { version = "1.0.214", features = ["derive"] } -serde_json = "1.0.128" +serde = { version = "1.0.217", features = ["derive"] } +serde_json = "1.0.135" sha2 = "0.10.8" tabled = { version = "0.15.0", optional = true } thiserror = "2.0.0" toml = "0.8.19" -ts-rs = { version = "10.0.0", features = [ +ts-rs = { version = "10.1.0", features = [ "uuid-impl", "url-impl", "chrono-impl", @@ -68,13 +68,13 @@ ts-rs = { version = "10.0.0", features = [ "no-serde-warnings", "serde-json-impl", ] } -url = { version = "2.5.3", features = ["serde"] } +url = { version = "2.5.4", features = ["serde"] } urlencoding = "2.1.3" uuid = { version = "1.11.0", features = ["v4", "js", "serde"] } validator = { version = "0.19.0", features = ["derive"] } web-time = "1.1" -winnow = "0.6.18" -zip = { version = "2.0.0", default-features = false } +winnow = "0.6.22" +zip = { version = "2.2.2", default-features = false } [target.'cfg(target_arch = "wasm32")'.dependencies] js-sys = { version = "0.3.72" } diff --git a/src/wasm-lib/kcl/fuzz/Cargo.lock b/src/wasm-lib/kcl/fuzz/Cargo.lock index f1e57855c..5c0ad7caa 100644 --- a/src/wasm-lib/kcl/fuzz/Cargo.lock +++ b/src/wasm-lib/kcl/fuzz/Cargo.lock @@ -72,20 +72,26 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" dependencies = [ "backtrace", ] +[[package]] +name = "approx" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08abcc3b4e9339e33a3d0a5ed15d84a687350c05689d825e0f6655eef9e76a94" + [[package]] name = "approx" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" dependencies = [ - "num-traits", + "num-traits 0.2.19", ] [[package]] @@ -110,7 +116,7 @@ dependencies = [ "futures-sink", "log", "pin-project-lite", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -121,18 +127,18 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -143,7 +149,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -173,12 +179,6 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" @@ -195,7 +195,7 @@ dependencies = [ "libm", "num-bigint", "num-integer", - "num-traits", + "num-traits 0.2.19", "serde", ] @@ -216,9 +216,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bitvec" @@ -243,19 +243,19 @@ dependencies = [ [[package]] name = "bson" -version = "2.11.0" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a88e82b9106923b5c4d6edfca9e7db958d4e98a478ec115022e81b9b38e2c8" +checksum = "068208f2b6fcfa27a7f1ee37488d2bb8ba2640f68f5475d08e1d9130696aba59" dependencies = [ "ahash", "base64 0.13.1", "bitvec", "chrono", "hex", - "indexmap 2.2.6", + "indexmap 2.7.0", "js-sys", "once_cell", - "rand", + "rand 0.8.5", "serde", "serde_bytes", "serde_json", @@ -289,9 +289,9 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.6.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" dependencies = [ "serde", ] @@ -314,15 +314,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] -name = "chrono" -version = "0.4.38" +name = "cfg_aliases" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "cgmath" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a4b57c8f4e3a2e9ac07e0f6abc9c24b6fc9e1b54c3478cfb598f3d0023e51c" +dependencies = [ + "approx 0.1.1", + "mint", + "num-traits 0.1.43", + "rand 0.4.6", +] + +[[package]] +name = "chrono" +version = "0.4.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", - "num-traits", + "num-traits 0.2.19", "serde", "wasm-bindgen", "windows-targets 0.52.5", @@ -349,9 +367,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.4" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" dependencies = [ "core-foundation-sys", "libc", @@ -359,9 +377,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" @@ -418,7 +436,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -429,7 +447,7 @@ checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" dependencies = [ "darling_core", "quote", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -447,9 +465,9 @@ dependencies = [ [[package]] name = "dashmap" -version = "6.0.1" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804c8821570c3f8b70230c2ba75ffa5c0f9a4189b9a432b6656c536712acae28" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ "cfg-if", "crossbeam-utils", @@ -465,29 +483,6 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" -[[package]] -name = "databake" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a04fbfbecca8f0679c8c06fef907594adcc3e2052e11163a6d30535a1a5604d" -dependencies = [ - "databake-derive", - "proc-macro2", - "quote", -] - -[[package]] -name = "databake-derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4078275de501a61ceb9e759d37bdd3d7210e654dbc167ac1a3678ef4435ed57b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", - "synstructure", -] - [[package]] name = "deranged" version = "0.3.11" @@ -499,7 +494,7 @@ dependencies = [ [[package]] name = "derive-docs" -version = "0.1.25" +version = "0.1.33" dependencies = [ "Inflector", "convert_case", @@ -509,7 +504,7 @@ dependencies = [ "regex", "serde", "serde_tokenstream", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -520,7 +515,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -541,7 +536,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -557,12 +552,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" [[package]] -name = "encoding_rs" -version = "0.8.34" +name = "enum-iterator" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "c280b9e6b3ae19e152d8e31cf47f18389781e119d4013a2a2bb0180e5facc635" dependencies = [ - "cfg-if", + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.93", ] [[package]] @@ -571,6 +577,16 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +[[package]] +name = "euler" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f19d11568a4a46aee488bdab3a2963e5e2c3cfd6091aa0abceaddcea82c0bc1" +dependencies = [ + "approx 0.1.1", + "cgmath", +] + [[package]] name = "fdeflate" version = "0.3.4" @@ -618,6 +634,12 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + [[package]] name = "funty" version = "2.0.0" @@ -626,9 +648,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -641,9 +663,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -651,15 +673,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -668,38 +690,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -757,7 +779,7 @@ dependencies = [ "inflections", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -772,25 +794,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.2.6", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "hashbrown" version = "0.12.3" @@ -803,6 +806,12 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + [[package]] name = "heck" version = "0.4.1" @@ -823,20 +832,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "http" -version = "0.2.12" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", @@ -845,12 +843,24 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.6" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 0.2.12", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http", + "http-body", "pin-project-lite", ] @@ -860,48 +870,60 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - [[package]] name = "hyper" -version = "0.14.28" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" dependencies = [ "bytes", "futures-channel", - "futures-core", "futures-util", - "h2", - "http 0.2.12", + "http", "http-body", "httparse", - "httpdate", "itoa", "pin-project-lite", - "socket2", + "smallvec", "tokio", - "tower-service", - "tracing", "want", ] [[package]] name = "hyper-rustls" -version = "0.24.2" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", - "http 0.2.12", + "http", "hyper", - "rustls 0.21.12", + "hyper-util", + "rustls", + "rustls-pki-types", "tokio", - "tokio-rustls 0.24.1", + "tokio-rustls", + "tower-service", + "webpki-roots", +] + +[[package]] +name = "hyper-util" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", ] [[package]] @@ -927,6 +949,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.93", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -935,23 +1075,34 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] name = "image" -version = "0.25.2" +version = "0.25.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10" +checksum = "cd6f44aed642f18953a158afeb30206f4d50da59fbc66ecb53c66488de73563b" dependencies = [ "bytemuck", "byteorder-lite", - "num-traits", + "num-traits 0.2.19", "png", ] @@ -963,16 +1114,18 @@ checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", + "serde", ] [[package]] name = "indexmap" -version = "2.2.6" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.2", + "serde", ] [[package]] @@ -1022,47 +1175,53 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" dependencies = [ + "once_cell", "wasm-bindgen", ] [[package]] name = "kcl-lib" -version = "0.2.10" +version = "0.2.29" dependencies = [ "anyhow", - "approx", + "approx 0.5.1", "async-recursion", "async-trait", "base64 0.22.1", "bson", "chrono", "convert_case", - "dashmap 6.0.1", - "databake", + "dashmap 6.1.0", "derive-docs", + "fnv", "form_urlencoded", "futures", "git_rev", "gltf-json", - "http 0.2.12", + "http", "image", + "indexmap 2.7.0", "js-sys", "kittycad", + "kittycad-modeling-cmds", "lazy_static", "measurements", + "miette", "mime_guess", - "parse-display", + "parse-display 0.9.1", + "regex", "reqwest", + "rgba_simple", "ropey", "schemars", "serde", "serde_json", "sha2", - "thiserror", + "thiserror 2.0.9", "tokio", "tokio-tungstenite", "toml", @@ -1075,7 +1234,8 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winnow 0.5.40", + "web-time", + "winnow", "zip", ] @@ -1089,9 +1249,9 @@ dependencies = [ [[package]] name = "kittycad" -version = "0.3.17" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb7c076d64ad00a29ae900108707d1bbb583944d4b2d005e1eca9914a18c7c2" +checksum = "933cb5f77624386c87d296e3fd493daf50156d1cbfa03b9f333a6d4da2896369" dependencies = [ "anyhow", "async-trait", @@ -1102,26 +1262,86 @@ dependencies = [ "data-encoding", "format_serde_error", "futures", - "http 0.2.12", + "http", "itertools 0.13.0", "log", "mime_guess", - "parse-display", + "parse-display 0.10.0", "phonenumber", - "rand", + "rand 0.8.5", "reqwest", "schemars", "serde", "serde_bytes", "serde_json", "serde_urlencoded", - "thiserror", + "thiserror 2.0.9", "tokio", "tracing", "url", "uuid", ] +[[package]] +name = "kittycad-modeling-cmds" +version = "0.2.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a8086c496d76962266614fea08adb3f1e075f00c2c04954c9d1d00f1da2a11" +dependencies = [ + "anyhow", + "chrono", + "data-encoding", + "enum-iterator", + "enum-iterator-derive", + "euler", + "http", + "kittycad-modeling-cmds-macros", + "kittycad-unit-conversion-derive", + "measurements", + "parse-display 0.9.1", + "parse-display-derive 0.9.1", + "schemars", + "serde", + "serde_bytes", + "serde_json", + "uuid", +] + +[[package]] +name = "kittycad-modeling-cmds-macros" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb9bb1a594541b878adc1c8dcb821328774bf7aa09b65b104a206b1291a5235c" +dependencies = [ + "kittycad-modeling-cmds-macros-impl", + "proc-macro2", + "quote", + "syn 2.0.93", +] + +[[package]] +name = "kittycad-modeling-cmds-macros-impl" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6607507a8a0e4273b943179f0a3ef8e90712308d1d3095246040c29cfdbf985b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.93", +] + +[[package]] +name = "kittycad-unit-conversion-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7001c46a92c1edce6722a3900539b198230980799035f02d92b4e7df3fc08738" +dependencies = [ + "inflections", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -1130,9 +1350,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.155" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libfuzzer-sys" @@ -1157,6 +1377,12 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" +[[package]] +name = "litemap" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" + [[package]] name = "lock_api" version = "0.4.12" @@ -1213,6 +1439,29 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "miette" +version = "7.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317f146e2eb7021892722af37cf1b971f0a70c8406f487e24952667616192c64" +dependencies = [ + "cfg-if", + "miette-derive", + "thiserror 1.0.63", + "unicode-width", +] + +[[package]] +name = "miette-derive" +version = "7.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23c9b935fbe1d6cbd1dac857b54a688145e2d93f48db36010514d0f612d0ad67" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.93", +] + [[package]] name = "mime" version = "0.3.17" @@ -1254,6 +1503,12 @@ dependencies = [ "adler2", ] +[[package]] +name = "mint" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e53debba6bda7a793e5f99b8dacf19e626084f525f7829104ba9898f367d85ff" + [[package]] name = "mio" version = "1.0.2" @@ -1283,7 +1538,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" dependencies = [ "num-integer", - "num-traits", + "num-traits 0.2.19", ] [[package]] @@ -1298,7 +1553,16 @@ version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "num-traits", + "num-traits 0.2.19", +] + +[[package]] +name = "num-traits" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" +dependencies = [ + "num-traits 0.2.19", ] [[package]] @@ -1321,9 +1585,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "oncemutex" @@ -1366,9 +1630,20 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "914a1c2265c98e2446911282c6ac86d8524f495792c38c5bd884f80499c7538a" dependencies = [ - "parse-display-derive", + "parse-display-derive 0.9.1", "regex", - "regex-syntax 0.8.3", + "regex-syntax 0.8.5", +] + +[[package]] +name = "parse-display" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287d8d3ebdce117b8539f59411e4ed9ec226e0a4153c7f55495c6070d68e6f72" +dependencies = [ + "parse-display-derive 0.10.0", + "regex", + "regex-syntax 0.8.5", ] [[package]] @@ -1380,9 +1655,23 @@ dependencies = [ "proc-macro2", "quote", "regex", - "regex-syntax 0.8.3", + "regex-syntax 0.8.5", "structmeta", - "syn 2.0.75", + "syn 2.0.93", +] + +[[package]] +name = "parse-display-derive" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fc048687be30d79502dea2f623d052f3a074012c6eac41726b7ab17213616b1" +dependencies = [ + "proc-macro2", + "quote", + "regex", + "regex-syntax 0.8.5", + "structmeta", + "syn 2.0.93", ] [[package]] @@ -1409,7 +1698,7 @@ dependencies = [ "serde", "serde_derive", "strum", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -1429,7 +1718,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -1470,34 +1759,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] -name = "proc-macro-error" -version = "1.0.4" +name = "proc-macro-error-attr2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" dependencies = [ - "proc-macro-error-attr", "proc-macro2", "quote", - "syn 1.0.109", - "version_check", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "proc-macro-error2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" dependencies = [ + "proc-macro-error-attr2", "proc-macro2", "quote", - "version_check", + "syn 2.0.93", ] [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -1512,10 +1799,62 @@ dependencies = [ ] [[package]] -name = "quote" -version = "1.0.36" +name = "quinn" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror 2.0.9", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" +dependencies = [ + "bytes", + "getrandom", + "rand 0.8.5", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.9", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "quote" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -1526,6 +1865,19 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" +[[package]] +name = "rand" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +dependencies = [ + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "rdrand", + "winapi", +] + [[package]] name = "rand" version = "0.8.5" @@ -1534,7 +1886,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha", - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -1544,9 +1896,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", ] +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + [[package]] name = "rand_core" version = "0.6.4" @@ -1556,36 +1923,45 @@ dependencies = [ "getrandom", ] +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + [[package]] name = "redox_syscall" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", ] [[package]] name = "regex" -version = "1.10.4" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", "regex-automata", - "regex-syntax 0.8.3", + "regex-syntax 0.8.5", ] [[package]] name = "regex-automata" -version = "0.4.6" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.3", + "regex-syntax 0.8.5", ] [[package]] @@ -1608,26 +1984,26 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.11.27" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "bytes", - "encoding_rs", "futures-core", "futures-util", - "h2", - "http 0.2.12", + "http", "http-body", + "http-body-util", "hyper", "hyper-rustls", + "hyper-util", "ipnet", "js-sys", "log", @@ -1636,15 +2012,16 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", + "quinn", + "rustls", + "rustls-pemfile", + "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper", - "system-configuration", "tokio", - "tokio-rustls 0.24.1", + "tokio-rustls", "tokio-util", "tower-service", "url", @@ -1656,6 +2033,12 @@ dependencies = [ "winreg", ] +[[package]] +name = "rgba_simple" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6cd655523701785087f69900df39892fb7b9b0721aa67682f571c38c32ac58a" + [[package]] name = "ring" version = "0.17.8" @@ -1688,16 +2071,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] -name = "rustls" -version = "0.21.12" +name = "rustc-hash" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", -] +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" [[package]] name = "rustls" @@ -1706,34 +2083,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" dependencies = [ "once_cell", + "ring", "rustls-pki-types", - "rustls-webpki 0.102.6", + "rustls-webpki", "subtle", "zeroize", ] [[package]] name = "rustls-native-certs" -version = "0.7.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.2", "rustls-pki-types", "schannel", "security-framework", ] -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - [[package]] name = "rustls-pemfile" version = "2.1.2" @@ -1746,18 +2114,11 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.7.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" - -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" dependencies = [ - "ring", - "untrusted", + "web-time", ] [[package]] @@ -1802,6 +2163,8 @@ dependencies = [ "bytes", "chrono", "dyn-clone", + "indexmap 1.9.3", + "indexmap 2.7.0", "schemars_derive", "serde", "serde_json", @@ -1818,7 +2181,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -1827,23 +2190,13 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "security-framework" -version = "2.11.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +checksum = "81d3f8c9bfcc3cbb6b0179eb57042d75b1582bdc65c3cb95f3fa999509c03cbc" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "core-foundation", "core-foundation-sys", "libc", @@ -1852,9 +2205,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.0" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" dependencies = [ "core-foundation-sys", "libc", @@ -1862,31 +2215,31 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.208" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] [[package]] name = "serde_bytes" -version = "0.11.14" +version = "0.11.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.208" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -1897,16 +2250,16 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] name = "serde_json" -version = "1.0.125" +version = "1.0.134" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" +checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.7.0", "itoa", "memchr", "ryu", @@ -1921,7 +2274,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -1942,7 +2295,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -2037,6 +2390,12 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "str_indices" version = "0.4.3" @@ -2058,7 +2417,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -2069,7 +2428,7 @@ checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -2091,7 +2450,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -2107,14 +2466,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", + "quote", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.75" +version = "2.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" +checksum = "9c786062daee0d6db1132800e623df74274a0a87322d8e183338e01b3d98d058" dependencies = [ "proc-macro2", "quote", @@ -2123,9 +2483,9 @@ dependencies = [ [[package]] name = "sync_wrapper" -version = "0.1.2" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" [[package]] name = "synstructure" @@ -2135,28 +2495,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", -] - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", + "syn 2.0.93", ] [[package]] @@ -2180,7 +2519,16 @@ version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.63", +] + +[[package]] +name = "thiserror" +version = "2.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc" +dependencies = [ + "thiserror-impl 2.0.9", ] [[package]] @@ -2191,7 +2539,18 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.93", ] [[package]] @@ -2225,6 +2584,16 @@ dependencies = [ "time-core", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -2242,9 +2611,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.3" +version = "1.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" +checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" dependencies = [ "backtrace", "bytes", @@ -2266,17 +2635,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", -] - -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", + "syn 2.0.93", ] [[package]] @@ -2285,24 +2644,24 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.12", + "rustls", "rustls-pki-types", "tokio", ] [[package]] name = "tokio-tungstenite" -version = "0.23.1" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" +checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" dependencies = [ "futures-util", "log", - "rustls 0.23.12", + "rustls", "rustls-native-certs", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls", "tungstenite", ] @@ -2346,11 +2705,11 @@ version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.7.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.18", + "winnow", ] [[package]] @@ -2405,7 +2764,7 @@ checksum = "84fd902d4e0b9a4b27f2f440108dc034e1758628a9b702f8ec61ad66355422fa" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -2433,7 +2792,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -2453,13 +2812,15 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "ts-rs" -version = "9.0.1" +version = "10.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b44017f9f875786e543595076374b9ef7d13465a518dd93d6ccdbf5b432dde8c" +checksum = "e640d9b0964e9d39df633548591090ab92f7a4567bc31d3891af23471a3365c6" dependencies = [ "chrono", + "indexmap 2.7.0", + "lazy_static", "serde_json", - "thiserror", + "thiserror 2.0.9", "ts-rs-macros", "url", "uuid", @@ -2467,33 +2828,33 @@ dependencies = [ [[package]] name = "ts-rs-macros" -version = "9.0.1" +version = "10.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c88cc88fd23b5a04528f3a8436024f20010a16ec18eb23c164b1242f65860130" +checksum = "0e9d8656589772eeec2cf7a8264d9cda40fb28b9bc53118ceb9e8c07f8f38730" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", "termcolor", ] [[package]] name = "tungstenite" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" +checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" dependencies = [ "byteorder", "bytes", "data-encoding", - "http 1.1.0", + "http", "httparse", "log", - "rand", - "rustls 0.23.12", + "rand 0.8.5", + "rustls", "rustls-pki-types", "sha1", - "thiserror", + "thiserror 1.0.63", "utf-8", ] @@ -2512,33 +2873,24 @@ dependencies = [ "version_check", ] -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - [[package]] name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" -[[package]] -name = "unicode-normalization" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] - [[package]] name = "unicode-segmentation" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + [[package]] name = "untrusted" version = "0.9.0" @@ -2547,9 +2899,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -2570,10 +2922,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" [[package]] -name = "uuid" -version = "1.10.0" +name = "utf16_iter" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ "getrandom", "serde", @@ -2582,9 +2946,9 @@ dependencies = [ [[package]] name = "validator" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db79c75af171630a3148bd3e6d7c4f42b6a9a014c2945bc5ed0020cbb8d9478e" +checksum = "d0b4a29d8709210980a09379f27ee31549b73292c87ab9899beee1c0d3be6303" dependencies = [ "idna", "once_cell", @@ -2598,16 +2962,16 @@ dependencies = [ [[package]] name = "validator_derive" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55591299b7007f551ed1eb79a684af7672c19c3193fb9e0a31936987bb2438ec" +checksum = "bac855a2ce6f843beb229757e6e570a42e837bcb15e5f449dd48d5747d41bf77" dependencies = [ "darling", "once_cell", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", ] [[package]] @@ -2633,46 +2997,47 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2680,22 +3045,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" [[package]] name = "wasm-streams" @@ -2712,9 +3077,19 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -2722,9 +3097,28 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.25.4" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" @@ -2735,6 +3129,12 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + [[package]] name = "windows-core" version = "0.52.0" @@ -2883,15 +3283,6 @@ version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - [[package]] name = "winnow" version = "0.6.18" @@ -2903,14 +3294,26 @@ dependencies = [ [[package]] name = "winreg" -version = "0.50.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" dependencies = [ "cfg-if", "windows-sys 0.48.0", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "wyz" version = "0.5.1" @@ -2929,6 +3332,30 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.93", + "synstructure", +] + [[package]] name = "zerocopy" version = "0.7.34" @@ -2946,7 +3373,28 @@ checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.93", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.93", + "synstructure", ] [[package]] @@ -2955,6 +3403,28 @@ version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.93", +] + [[package]] name = "zip" version = "2.2.0" @@ -2965,7 +3435,7 @@ dependencies = [ "crc32fast", "crossbeam-utils", "displaydoc", - "indexmap 2.2.6", + "indexmap 2.7.0", "memchr", - "thiserror", + "thiserror 1.0.63", ] diff --git a/src/wasm-lib/kcl/fuzz/Cargo.toml b/src/wasm-lib/kcl/fuzz/Cargo.toml index f88f4b363..a9960f1a4 100644 --- a/src/wasm-lib/kcl/fuzz/Cargo.toml +++ b/src/wasm-lib/kcl/fuzz/Cargo.toml @@ -19,12 +19,15 @@ path = ".." [workspace] members = ["."] +[workspace.lints.clippy] +assertions_on_result_states = "warn" +dbg_macro = "warn" +iter_over_hash_type = "warn" +lossy_float_literal = "warn" + [profile.release] debug = 1 -[lints] -workspace = true - [[bin]] name = "parser" path = "fuzz_targets/parser.rs" diff --git a/src/wasm-lib/kcl/fuzz/fuzz_targets/parser.rs b/src/wasm-lib/kcl/fuzz/fuzz_targets/parser.rs index 5b8b8d792..456a08bc5 100644 --- a/src/wasm-lib/kcl/fuzz/fuzz_targets/parser.rs +++ b/src/wasm-lib/kcl/fuzz/fuzz_targets/parser.rs @@ -3,7 +3,5 @@ use libfuzzer_sys::fuzz_target; fuzz_target!(|data: &str| { - if let Ok(v) = kcl_lib::token::lexer(data) { - let _ = kcl_lib::parser::Parser::new(v).ast(); - } + let _ = kcl_lib::Program::parse(data); }); diff --git a/src/wasm-lib/kcl/src/coredump/mod.rs b/src/wasm-lib/kcl/src/coredump/mod.rs index 324cf1fe5..3057e3e40 100644 --- a/src/wasm-lib/kcl/src/coredump/mod.rs +++ b/src/wasm-lib/kcl/src/coredump/mod.rs @@ -163,6 +163,9 @@ impl CoreDumpInfo { ![Screenshot]({screenshot_url}) +> _Note: If you are capturing from a browser there is limited support for screenshots, only captures the modeling scene. + If you are on MacOS native screenshots may be disabled by default. To enable native screenshots add Zoo Modeling App to System Settings -> Screen & SystemAudio Recording for native screenshots._ +
    Core Dump diff --git a/src/wasm-lib/kcl/src/docs/gen_std_tests.rs b/src/wasm-lib/kcl/src/docs/gen_std_tests.rs index b110293a2..76dfc8e97 100644 --- a/src/wasm-lib/kcl/src/docs/gen_std_tests.rs +++ b/src/wasm-lib/kcl/src/docs/gen_std_tests.rs @@ -535,7 +535,11 @@ fn generate_type( || name == "CircularPattern3dData" || name == "LinearPattern2dData" || name == "LinearPattern3dData" - || name == "Mirror2dData") + || name == "Mirror2dData" + || name == "Axis2dOrEdgeReference" + || name == "Axis3dOrEdgeReference" + || name == "AxisAndOrigin2d" + || name == "AxisAndOrigin3d") { return Err(anyhow::anyhow!("Type name is not pascal cased: {}", name)); } diff --git a/src/wasm-lib/kcl/src/engine/conn.rs b/src/wasm-lib/kcl/src/engine/conn.rs index 210ac91b9..013707013 100644 --- a/src/wasm-lib/kcl/src/engine/conn.rs +++ b/src/wasm-lib/kcl/src/engine/conn.rs @@ -1,7 +1,10 @@ //! Functions for setting up our WebSocket and WebRTC connections for communications with the //! engine. -use std::sync::{Arc, Mutex}; +use std::{ + collections::HashMap, + sync::{Arc, Mutex}, +}; use anyhow::{anyhow, Result}; use dashmap::DashMap; @@ -14,15 +17,16 @@ use kcmc::{ }, ModelingCmd, }; -use kittycad_modeling_cmds as kcmc; +use kittycad_modeling_cmds::{self as kcmc, id::ModelingCmdId, websocket::ModelingBatch}; use tokio::sync::{mpsc, oneshot, RwLock}; use tokio_tungstenite::tungstenite::Message as WsMsg; +use uuid::Uuid; use super::ExecutionKind; use crate::{ engine::EngineManager, errors::{KclError, KclErrorDetails}, - execution::{DefaultPlanes, IdGenerator}, + execution::{ArtifactCommand, DefaultPlanes, IdGenerator}, SourceRange, }; @@ -43,6 +47,7 @@ pub struct EngineConnection { socket_health: Arc>, batch: Arc>>, batch_end: Arc>>, + artifact_commands: Arc>>, /// The default planes for the scene. default_planes: Arc>>, @@ -307,11 +312,34 @@ impl EngineConnection { socket_health, batch: Arc::new(Mutex::new(Vec::new())), batch_end: Arc::new(Mutex::new(IndexMap::new())), + artifact_commands: Arc::new(Mutex::new(Vec::new())), default_planes: Default::default(), session_data, execution_kind: Default::default(), }) } + + fn handle_command( + &self, + cmd: &ModelingCmd, + cmd_id: ModelingCmdId, + id_to_source_range: &HashMap, + ) -> Result<(), KclError> { + let cmd_id = *cmd_id.as_ref(); + let range = id_to_source_range + .get(&cmd_id) + .copied() + .ok_or_else(|| KclError::internal(format!("Failed to get source range for command ID: {:?}", cmd_id)))?; + + // Add artifact command. + let mut artifact_commands = self.artifact_commands.lock().unwrap(); + artifact_commands.push(ArtifactCommand { + cmd_id, + range, + command: cmd.clone(), + }); + Ok(()) + } } #[async_trait::async_trait] @@ -324,6 +352,11 @@ impl EngineManager for EngineConnection { self.batch_end.clone() } + fn take_artifact_commands(&self) -> Vec { + let mut artifact_commands = self.artifact_commands.lock().unwrap(); + std::mem::take(&mut *artifact_commands) + } + fn execution_kind(&self) -> ExecutionKind { let guard = self.execution_kind.lock().unwrap(); *guard @@ -371,8 +404,20 @@ impl EngineManager for EngineConnection { id: uuid::Uuid, source_range: SourceRange, cmd: WebSocketRequest, - _id_to_source_range: std::collections::HashMap, + id_to_source_range: HashMap, ) -> Result { + match &cmd { + WebSocketRequest::ModelingCmdBatchReq(ModelingBatch { requests, .. }) => { + for request in requests { + self.handle_command(&request.cmd, request.cmd_id, &id_to_source_range)?; + } + } + WebSocketRequest::ModelingCmdReq(request) => { + self.handle_command(&request.cmd, request.cmd_id, &id_to_source_range)?; + } + _ => {} + } + let (tx, rx) = oneshot::channel(); // Send the request to the engine, via the actor. diff --git a/src/wasm-lib/kcl/src/engine/conn_mock.rs b/src/wasm-lib/kcl/src/engine/conn_mock.rs index 4a11c0a2b..8e5dc2cfe 100644 --- a/src/wasm-lib/kcl/src/engine/conn_mock.rs +++ b/src/wasm-lib/kcl/src/engine/conn_mock.rs @@ -15,12 +15,14 @@ use kcmc::{ WebSocketResponse, }, }; -use kittycad_modeling_cmds::{self as kcmc}; +use kittycad_modeling_cmds::{self as kcmc, id::ModelingCmdId, ModelingCmd}; +use uuid::Uuid; use super::ExecutionKind; use crate::{ errors::KclError, - execution::{DefaultPlanes, IdGenerator}, + exec::DefaultPlanes, + execution::{ArtifactCommand, IdGenerator}, SourceRange, }; @@ -28,6 +30,7 @@ use crate::{ pub struct EngineConnection { batch: Arc>>, batch_end: Arc>>, + artifact_commands: Arc>>, execution_kind: Arc>, } @@ -36,9 +39,32 @@ impl EngineConnection { Ok(EngineConnection { batch: Arc::new(Mutex::new(Vec::new())), batch_end: Arc::new(Mutex::new(IndexMap::new())), + artifact_commands: Arc::new(Mutex::new(Vec::new())), execution_kind: Default::default(), }) } + + fn handle_command( + &self, + cmd: &ModelingCmd, + cmd_id: ModelingCmdId, + id_to_source_range: &HashMap, + ) -> Result<(), KclError> { + let cmd_id = *cmd_id.as_ref(); + let range = id_to_source_range + .get(&cmd_id) + .copied() + .ok_or_else(|| KclError::internal(format!("Failed to get source range for command ID: {:?}", cmd_id)))?; + + // Add artifact command. + let mut artifact_commands = self.artifact_commands.lock().unwrap(); + artifact_commands.push(ArtifactCommand { + cmd_id, + range, + command: cmd.clone(), + }); + Ok(()) + } } #[async_trait::async_trait] @@ -51,6 +77,11 @@ impl crate::engine::EngineManager for EngineConnection { self.batch_end.clone() } + fn take_artifact_commands(&self) -> Vec { + let mut artifact_commands = self.artifact_commands.lock().unwrap(); + std::mem::take(&mut *artifact_commands) + } + fn execution_kind(&self) -> ExecutionKind { let guard = self.execution_kind.lock().unwrap(); *guard @@ -84,7 +115,7 @@ impl crate::engine::EngineManager for EngineConnection { id: uuid::Uuid, _source_range: SourceRange, cmd: WebSocketRequest, - _id_to_source_range: std::collections::HashMap, + id_to_source_range: HashMap, ) -> Result { match cmd { WebSocketRequest::ModelingCmdBatchReq(ModelingBatch { @@ -95,6 +126,7 @@ impl crate::engine::EngineManager for EngineConnection { // Create the empty responses. let mut responses = HashMap::new(); for request in requests { + self.handle_command(&request.cmd, request.cmd_id, &id_to_source_range)?; responses.insert( request.cmd_id, BatchResponse::Success { @@ -108,6 +140,17 @@ impl crate::engine::EngineManager for EngineConnection { success: true, })) } + WebSocketRequest::ModelingCmdReq(request) => { + self.handle_command(&request.cmd, request.cmd_id, &id_to_source_range)?; + + Ok(WebSocketResponse::Success(SuccessWebSocketResponse { + request_id: Some(id), + resp: OkWebSocketResponseData::Modeling { + modeling_response: OkModelingCmdResponse::Empty {}, + }, + success: true, + })) + } _ => Ok(WebSocketResponse::Success(SuccessWebSocketResponse { request_id: Some(id), resp: OkWebSocketResponseData::Modeling { diff --git a/src/wasm-lib/kcl/src/engine/conn_wasm.rs b/src/wasm-lib/kcl/src/engine/conn_wasm.rs index 977a5395c..cd5360409 100644 --- a/src/wasm-lib/kcl/src/engine/conn_wasm.rs +++ b/src/wasm-lib/kcl/src/engine/conn_wasm.rs @@ -1,17 +1,25 @@ //! Functions for setting up our WebSocket and WebRTC connections for communications with the //! engine. -use std::sync::{Arc, Mutex}; +use std::{ + collections::HashMap, + sync::{Arc, Mutex}, +}; use anyhow::Result; use indexmap::IndexMap; -use kcmc::websocket::{WebSocketRequest, WebSocketResponse}; +use kcmc::{ + id::ModelingCmdId, + websocket::{ModelingBatch, WebSocketRequest, WebSocketResponse}, + ModelingCmd, +}; use kittycad_modeling_cmds as kcmc; +use uuid::Uuid; use wasm_bindgen::prelude::*; use crate::{ engine::ExecutionKind, errors::{KclError, KclErrorDetails}, - execution::{DefaultPlanes, IdGenerator}, + execution::{ArtifactCommand, DefaultPlanes, IdGenerator}, SourceRange, }; @@ -44,6 +52,7 @@ pub struct EngineConnection { manager: Arc, batch: Arc>>, batch_end: Arc>>, + artifact_commands: Arc>>, execution_kind: Arc>, } @@ -57,11 +66,36 @@ impl EngineConnection { manager: Arc::new(manager), batch: Arc::new(Mutex::new(Vec::new())), batch_end: Arc::new(Mutex::new(IndexMap::new())), + artifact_commands: Arc::new(Mutex::new(Vec::new())), execution_kind: Default::default(), }) } } +impl EngineConnection { + fn handle_command( + &self, + cmd: &ModelingCmd, + cmd_id: ModelingCmdId, + id_to_source_range: &HashMap, + ) -> Result<(), KclError> { + let cmd_id = *cmd_id.as_ref(); + let range = id_to_source_range + .get(&cmd_id) + .copied() + .ok_or_else(|| KclError::internal(format!("Failed to get source range for command ID: {:?}", cmd_id)))?; + + // Add artifact command. + let mut artifact_commands = self.artifact_commands.lock().unwrap(); + artifact_commands.push(ArtifactCommand { + cmd_id, + range, + command: cmd.clone(), + }); + Ok(()) + } +} + #[async_trait::async_trait] impl crate::engine::EngineManager for EngineConnection { fn batch(&self) -> Arc>> { @@ -72,6 +106,11 @@ impl crate::engine::EngineManager for EngineConnection { self.batch_end.clone() } + fn take_artifact_commands(&self) -> Vec { + let mut artifact_commands = self.artifact_commands.lock().unwrap(); + std::mem::take(&mut *artifact_commands) + } + fn execution_kind(&self) -> ExecutionKind { let guard = self.execution_kind.lock().unwrap(); *guard @@ -161,8 +200,20 @@ impl crate::engine::EngineManager for EngineConnection { id: uuid::Uuid, source_range: SourceRange, cmd: WebSocketRequest, - id_to_source_range: std::collections::HashMap, + id_to_source_range: HashMap, ) -> Result { + match &cmd { + WebSocketRequest::ModelingCmdBatchReq(ModelingBatch { requests, .. }) => { + for request in requests { + self.handle_command(&request.cmd, request.cmd_id, &id_to_source_range)?; + } + } + WebSocketRequest::ModelingCmdReq(request) => { + self.handle_command(&request.cmd, request.cmd_id, &id_to_source_range)?; + } + _ => {} + } + let source_range_str = serde_json::to_string(&source_range).map_err(|e| { KclError::Engine(KclErrorDetails { message: format!("Failed to serialize source range: {:?}", e), diff --git a/src/wasm-lib/kcl/src/engine/mod.rs b/src/wasm-lib/kcl/src/engine/mod.rs index 9e1d315f9..929611ac6 100644 --- a/src/wasm-lib/kcl/src/engine/mod.rs +++ b/src/wasm-lib/kcl/src/engine/mod.rs @@ -32,7 +32,7 @@ use uuid::Uuid; use crate::{ errors::{KclError, KclErrorDetails}, - execution::{DefaultPlanes, IdGenerator, Point3d}, + execution::{ArtifactCommand, DefaultPlanes, IdGenerator, Point3d}, SourceRange, }; @@ -67,6 +67,14 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { /// Get the batch of end commands to be sent to the engine. fn batch_end(&self) -> Arc>>; + /// Take the artifact commands generated up to this point and clear them. + fn take_artifact_commands(&self) -> Vec; + + /// Clear all artifact commands that have accumulated so far. + fn clear_artifact_commands(&self) { + self.take_artifact_commands(); + } + /// Get the current execution kind. fn execution_kind(&self) -> ExecutionKind; @@ -106,7 +114,7 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { self.batch_modeling_cmd( uuid::Uuid::new_v4(), source_range, - &ModelingCmd::SceneClearAll(mcmd::SceneClearAll {}), + &ModelingCmd::SceneClearAll(mcmd::SceneClearAll::default()), ) .await?; @@ -114,6 +122,10 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { // Otherwise the hooks below won't work. self.flush_batch(false, source_range).await?; + // Ensure artifact commands are cleared so that we don't accumulate them + // across runs. + self.clear_artifact_commands(); + // Do the after clear scene hook. self.clear_scene_post_hook(id_generator, source_range).await?; @@ -217,15 +229,13 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { } /// Send the modeling cmd and wait for the response. - // TODO: This should only borrow `cmd`. - // See https://github.com/KittyCAD/modeling-app/issues/2821 async fn send_modeling_cmd( &self, id: uuid::Uuid, source_range: SourceRange, - cmd: ModelingCmd, + cmd: &ModelingCmd, ) -> Result { - self.batch_modeling_cmd(id, source_range, &cmd).await?; + self.batch_modeling_cmd(id, source_range, cmd).await?; // Flush the batch queue. self.flush_batch(false, source_range).await diff --git a/src/wasm-lib/kcl/src/errors.rs b/src/wasm-lib/kcl/src/errors.rs index b21782d5b..ad7357d6e 100644 --- a/src/wasm-lib/kcl/src/errors.rs +++ b/src/wasm-lib/kcl/src/errors.rs @@ -3,7 +3,7 @@ use thiserror::Error; use tower_lsp::lsp_types::{Diagnostic, DiagnosticSeverity}; use crate::{ - execution::Operation, + execution::{ArtifactCommand, Operation}, lsp::IntoDiagnostic, source_range::{ModuleId, SourceRange}, }; @@ -12,13 +12,19 @@ use crate::{ #[derive(thiserror::Error, Debug)] pub enum ExecError { #[error("{0}")] - Kcl(#[from] crate::KclError), + Kcl(#[from] Box), #[error("Could not connect to engine: {0}")] Connection(#[from] ConnectionError), #[error("PNG snapshot could not be decoded: {0}")] BadPng(String), } +impl From for ExecError { + fn from(error: KclErrorWithOutputs) -> Self { + ExecError::Kcl(Box::new(error)) + } +} + /// How did the KCL execution fail, with extra state. #[cfg_attr(target_arch = "wasm32", expect(dead_code))] #[derive(Debug)] @@ -43,15 +49,6 @@ impl From for ExecErrorWithState { } } -impl From for ExecErrorWithState { - fn from(error: KclError) -> Self { - Self { - error: error.into(), - exec_state: Default::default(), - } - } -} - impl From for ExecErrorWithState { fn from(error: ConnectionError) -> Self { Self { @@ -100,18 +97,36 @@ pub enum KclError { Internal(KclErrorDetails), } -#[derive(Error, Debug, Serialize, Deserialize, ts_rs::TS, Clone, PartialEq, Eq)] +impl From for KclError { + fn from(error: KclErrorWithOutputs) -> Self { + error.error + } +} + +#[derive(Error, Debug, Serialize, Deserialize, ts_rs::TS, Clone, PartialEq)] #[error("{error}")] #[ts(export)] #[serde(rename_all = "camelCase")] pub struct KclErrorWithOutputs { pub error: KclError, pub operations: Vec, + pub artifact_commands: Vec, } impl KclErrorWithOutputs { - pub fn new(error: KclError, operations: Vec) -> Self { - Self { error, operations } + pub fn new(error: KclError, operations: Vec, artifact_commands: Vec) -> Self { + Self { + error, + operations, + artifact_commands, + } + } + pub fn no_outputs(error: KclError) -> Self { + Self { + error, + operations: Default::default(), + artifact_commands: Default::default(), + } } } diff --git a/src/wasm-lib/kcl/src/execution/artifact.rs b/src/wasm-lib/kcl/src/execution/artifact.rs index a7f8330bb..cf0a3b563 100644 --- a/src/wasm-lib/kcl/src/execution/artifact.rs +++ b/src/wasm-lib/kcl/src/execution/artifact.rs @@ -1,9 +1,27 @@ +use kittycad_modeling_cmds::ModelingCmd; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; use uuid::Uuid; use crate::SourceRange; +/// A command that may create or update artifacts on the TS side. Because +/// engine commands are batched, we don't have the response yet when these are +/// created. +#[derive(Debug, Clone, PartialEq, Deserialize, Serialize, ts_rs::TS)] +#[ts(export)] +#[serde(rename_all = "camelCase")] +pub struct ArtifactCommand { + /// Identifier of the command that can be matched with its response. + pub cmd_id: Uuid, + pub range: SourceRange, + /// The engine command. Each artifact command is backed by an engine + /// command. In the future, we may need to send information to the TS side + /// without an engine command, in which case, we would make this field + /// optional. + pub command: ModelingCmd, +} + #[derive(Debug, Clone, Copy, Deserialize, Serialize, PartialEq, Eq, Hash, ts_rs::TS, JsonSchema)] #[ts(export)] pub struct ArtifactId(Uuid); @@ -26,6 +44,18 @@ impl From<&Uuid> for ArtifactId { } } +impl From for Uuid { + fn from(id: ArtifactId) -> Self { + id.0 + } +} + +impl From<&ArtifactId> for Uuid { + fn from(id: &ArtifactId) -> Self { + id.0 + } +} + #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] #[ts(export)] #[serde(rename_all = "camelCase")] diff --git a/src/wasm-lib/kcl/src/execution/cache.rs b/src/wasm-lib/kcl/src/execution/cache.rs index ea8ed1b5c..479778aa0 100644 --- a/src/wasm-lib/kcl/src/execution/cache.rs +++ b/src/wasm-lib/kcl/src/execution/cache.rs @@ -1,6 +1,5 @@ //! Functions for helping with caching an ast and finding the parts the changed. -use schemars::JsonSchema; use serde::{Deserialize, Serialize}; use crate::{ @@ -9,8 +8,7 @@ use crate::{ }; /// Information for the caching an AST and smartly re-executing it if we can. -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] -#[ts(export)] +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] pub struct CacheInformation { /// The old information. pub old: Option, @@ -19,8 +17,7 @@ pub struct CacheInformation { } /// The old ast and program memory. -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] -#[ts(export)] +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] pub struct OldAstState { /// The ast. pub ast: Node, @@ -40,8 +37,7 @@ impl From for CacheInformation { } /// The result of a cache check. -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] -#[ts(export)] +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] pub struct CacheResult { /// Should we clear the scene and start over? pub clear_scene: bool, diff --git a/src/wasm-lib/kcl/src/execution/kcl_value.rs b/src/wasm-lib/kcl/src/execution/kcl_value.rs index 75871a6d3..96815060e 100644 --- a/src/wasm-lib/kcl/src/execution/kcl_value.rs +++ b/src/wasm-lib/kcl/src/execution/kcl_value.rs @@ -7,7 +7,9 @@ use serde::{Deserialize, Serialize}; use crate::{ errors::KclErrorDetails, exec::{ProgramMemory, Sketch}, - execution::{Face, ImportedGeometry, MemoryFunction, Metadata, Plane, SketchSet, Solid, SolidSet, TagIdentifier}, + execution::{ + Face, Helix, ImportedGeometry, MemoryFunction, Metadata, Plane, SketchSet, Solid, SolidSet, TagIdentifier, + }, parsing::{ ast::types::{FunctionExpression, KclNone, LiteralValue, TagDeclarator, TagNode}, token::NumericSuffix, @@ -72,6 +74,7 @@ pub enum KclValue { Solids { value: Vec>, }, + Helix(Box), ImportedGeometry(ImportedGeometry), #[ts(skip)] Function { @@ -141,6 +144,7 @@ impl From for Vec { KclValue::Solids { value } => value.iter().flat_map(|eg| to_vec_sr(&eg.meta)).collect(), KclValue::Sketch { value } => to_vec_sr(&value.meta), KclValue::Sketches { value } => value.iter().flat_map(|eg| to_vec_sr(&eg.meta)).collect(), + KclValue::Helix(e) => to_vec_sr(&e.meta), KclValue::ImportedGeometry(i) => to_vec_sr(&i.meta), KclValue::Function { meta, .. } => to_vec_sr(&meta), KclValue::Plane(p) => to_vec_sr(&p.meta), @@ -171,6 +175,7 @@ impl From<&KclValue> for Vec { KclValue::Solids { value } => value.iter().flat_map(|eg| to_vec_sr(&eg.meta)).collect(), KclValue::Sketch { value } => to_vec_sr(&value.meta), KclValue::Sketches { value } => value.iter().flat_map(|eg| to_vec_sr(&eg.meta)).collect(), + KclValue::Helix(x) => to_vec_sr(&x.meta), KclValue::ImportedGeometry(i) => to_vec_sr(&i.meta), KclValue::Function { meta, .. } => to_vec_sr(meta), KclValue::Plane(p) => to_vec_sr(&p.meta), @@ -206,6 +211,7 @@ impl KclValue { KclValue::Sketches { value } => value.iter().flat_map(|sketch| &sketch.meta).copied().collect(), KclValue::Solid(x) => x.meta.clone(), KclValue::Solids { value } => value.iter().flat_map(|sketch| &sketch.meta).copied().collect(), + KclValue::Helix(x) => x.meta.clone(), KclValue::ImportedGeometry(x) => x.meta.clone(), KclValue::Function { meta, .. } => meta.clone(), KclValue::Module { meta, .. } => meta.clone(), @@ -264,6 +270,7 @@ impl KclValue { KclValue::Solids { .. } => "Solids", KclValue::Sketch { .. } => "Sketch", KclValue::Sketches { .. } => "Sketches", + KclValue::Helix(_) => "Helix", KclValue::ImportedGeometry(_) => "ImportedGeometry", KclValue::Function { .. } => "Function", KclValue::Plane(_) => "Plane", diff --git a/src/wasm-lib/kcl/src/execution/mod.rs b/src/wasm-lib/kcl/src/execution/mod.rs index 67c03f23d..cf9f5fb3e 100644 --- a/src/wasm-lib/kcl/src/execution/mod.rs +++ b/src/wasm-lib/kcl/src/execution/mod.rs @@ -45,24 +45,22 @@ use crate::{ source_range::{ModuleId, SourceRange}, std::{args::Arg, StdLib}, walk::Node as WalkNode, - ExecError, Program, + ExecError, KclErrorWithOutputs, Program, }; // Re-exports. -pub use artifact::{Artifact, ArtifactId, ArtifactInner}; +pub use artifact::{Artifact, ArtifactCommand, ArtifactId, ArtifactInner}; pub use cad_op::Operation; /// State for executing a program. -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] -#[ts(export)] +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct ExecState { pub global: GlobalState, pub mod_local: ModuleState, } -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] -#[ts(export)] +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct GlobalState { /// The stable artifact ID generator. @@ -73,10 +71,13 @@ pub struct GlobalState { pub module_infos: IndexMap, /// Output map of UUIDs to artifacts. pub artifacts: IndexMap, + /// Output commands to allow building the artifact graph by the caller. + /// These are accumulated in the [`ExecutorContext`] but moved here for + /// convenience of the execution cache. + pub artifact_commands: Vec, } -#[derive(Debug, Default, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] -#[ts(export)] +#[derive(Debug, Default, Clone, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct ModuleState { /// Program variable bindings. @@ -98,6 +99,22 @@ pub struct ModuleState { pub settings: MetaSettings, } +/// Outcome of executing a program. This is used in TS. +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS)] +#[ts(export)] +#[serde(rename_all = "camelCase")] +pub struct ExecOutcome { + /// Program variable bindings of the top-level module. + pub memory: ProgramMemory, + /// Operations that have been performed in execution order, for display in + /// the Feature Tree. + pub operations: Vec, + /// Output map of UUIDs to artifacts. + pub artifacts: IndexMap, + /// Output commands to allow building the artifact graph by the caller. + pub artifact_commands: Vec, +} + impl Default for ExecState { fn default() -> Self { Self::new() @@ -127,6 +144,20 @@ impl ExecState { }; } + /// Convert to execution outcome when running in WebAssembly. We want to + /// reduce the amount of data that crosses the WASM boundary as much as + /// possible. + pub fn to_wasm_outcome(self) -> ExecOutcome { + // Fields are opt-in so that we don't accidentally leak private internal + // state when we add more to ExecState. + ExecOutcome { + memory: self.mod_local.memory, + operations: self.mod_local.operations, + artifacts: self.global.artifacts, + artifact_commands: self.global.artifact_commands, + } + } + pub fn memory(&self) -> &ProgramMemory { &self.mod_local.memory } @@ -182,6 +213,7 @@ impl GlobalState { path_to_source_id: Default::default(), module_infos: Default::default(), artifacts: Default::default(), + artifact_commands: Default::default(), }; // TODO(#4434): Use the top-level file's path. @@ -434,7 +466,7 @@ impl Environment { /// Dynamic state that depends on the dynamic flow of the program, like the call /// stack. If the language had exceptions, for example, you could store the /// stack of exception handlers here. -#[derive(Debug, Default, Clone, PartialEq, Eq, Deserialize, Serialize, ts_rs::TS, JsonSchema)] +#[derive(Debug, Default, Clone, PartialEq, Eq, Deserialize, Serialize)] pub struct DynamicState { pub solid_ids: Vec, } @@ -472,8 +504,7 @@ impl DynamicState { } /// A generator for ArtifactIds that can be stable across executions. -#[derive(Debug, Clone, Default, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] -#[ts(export)] +#[derive(Debug, Clone, Default, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct IdGenerator { next_id: usize, @@ -692,6 +723,23 @@ pub struct ImportedGeometry { pub meta: Vec, } +/// A helix. +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] +#[ts(export)] +#[serde(rename_all = "camelCase")] +pub struct Helix { + /// The id of the helix. + pub value: uuid::Uuid, + /// Number of revolutions. + pub revolutions: f64, + /// Start angle (in degrees). + pub angle_start: f64, + /// Is the helix rotation counter clockwise? + pub ccw: bool, + #[serde(rename = "__meta")] + pub meta: Vec, +} + /// A plane. #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] #[ts(export)] @@ -1083,7 +1131,7 @@ impl Solid { /// An solid ID and its fillet and chamfer IDs. This is needed for lazy /// fillet evaluation. -#[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize, ts_rs::TS, JsonSchema)] +#[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize)] pub struct SolidLazyIds { pub solid_id: uuid::Uuid, pub sketch_id: uuid::Uuid, @@ -1163,8 +1211,7 @@ pub enum BodyType { /// Info about a module. Right now, this is pretty minimal. We hope to cache /// modules here in the future. -#[derive(Debug, Clone, PartialEq, Deserialize, Serialize, ts_rs::TS, JsonSchema)] -#[ts(export)] +#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)] pub struct ModuleInfo { /// The ID of the module. id: ModuleId, @@ -2108,21 +2155,50 @@ impl ExecutorContext { } /// Perform the execution of a program. - /// You can optionally pass in some initialization memory. - /// Kurt uses this for partial execution. + /// + /// You can optionally pass in some initialization memory for partial + /// execution. pub async fn run(&self, cache_info: CacheInformation, exec_state: &mut ExecState) -> Result<(), KclError> { self.run_with_session_data(cache_info, exec_state).await?; Ok(()) } /// Perform the execution of a program. - /// You can optionally pass in some initialization memory. - /// Kurt uses this for partial execution. + /// + /// You can optionally pass in some initialization memory for partial + /// execution. + /// + /// The error includes additional outputs used for the feature tree and + /// artifact graph. + pub async fn run_with_ui_outputs( + &self, + cache_info: CacheInformation, + exec_state: &mut ExecState, + ) -> Result<(), KclErrorWithOutputs> { + self.inner_run(cache_info, exec_state).await?; + Ok(()) + } + + /// Perform the execution of a program. Additionally return engine session + /// data. pub async fn run_with_session_data( &self, cache_info: CacheInformation, exec_state: &mut ExecState, ) -> Result, KclError> { + self.inner_run(cache_info, exec_state).await.map_err(|e| e.into()) + } + + /// Perform the execution of a program. Accept all possible parameters and + /// output everything. + /// + /// You can optionally pass in some initialization memory for partial + /// execution. + async fn inner_run( + &self, + cache_info: CacheInformation, + exec_state: &mut ExecState, + ) -> Result, KclErrorWithOutputs> { let _stats = crate::log::LogPerfStats::new("Interpretation"); // Get the program that actually changed from the old and new information. @@ -2139,14 +2215,28 @@ impl ExecutorContext { // We don't do this in mock mode since there is no engine connection // anyways and from the TS side we override memory and don't want to clear it. - self.reset_scene(exec_state, Default::default()).await?; + self.reset_scene(exec_state, Default::default()) + .await + .map_err(KclErrorWithOutputs::no_outputs)?; } // Re-apply the settings, in case the cache was busted. - self.engine.reapply_settings(&self.settings, Default::default()).await?; + self.engine + .reapply_settings(&self.settings, Default::default()) + .await + .map_err(KclErrorWithOutputs::no_outputs)?; self.inner_execute(&cache_result.program, exec_state, crate::execution::BodyType::Root) - .await?; + .await + .map_err(|e| { + KclErrorWithOutputs::new( + e, + exec_state.mod_local.operations.clone(), + self.engine.take_artifact_commands(), + ) + })?; + // Move the artifact commands to simplify cache management. + exec_state.global.artifact_commands = self.engine.take_artifact_commands(); let session_data = self.engine.get_session_data(); Ok(session_data) } @@ -2493,13 +2583,14 @@ impl ExecutorContext { .send_modeling_cmd( uuid::Uuid::new_v4(), crate::execution::SourceRange::default(), - ModelingCmd::from(mcmd::ZoomToFit { + &ModelingCmd::from(mcmd::ZoomToFit { object_ids: Default::default(), animated: false, padding: 0.1, }), ) - .await?; + .await + .map_err(KclErrorWithOutputs::no_outputs)?; // Send a snapshot request to the engine. let resp = self @@ -2507,11 +2598,12 @@ impl ExecutorContext { .send_modeling_cmd( uuid::Uuid::new_v4(), crate::execution::SourceRange::default(), - ModelingCmd::from(mcmd::TakeSnapshot { + &ModelingCmd::from(mcmd::TakeSnapshot { format: ImageFormat::Png, }), ) - .await?; + .await + .map_err(KclErrorWithOutputs::no_outputs)?; let OkWebSocketResponseData::Modeling { modeling_response: OkModelingCmdResponse::TakeSnapshot(contents), @@ -2530,7 +2622,7 @@ impl ExecutorContext { program: &Program, exec_state: &mut ExecState, ) -> std::result::Result { - self.run(program.clone().into(), exec_state).await?; + self.run_with_ui_outputs(program.clone().into(), exec_state).await?; self.prepare_snapshot().await } diff --git a/src/wasm-lib/kcl/src/lib.rs b/src/wasm-lib/kcl/src/lib.rs index e3c199582..5821478e0 100644 --- a/src/wasm-lib/kcl/src/lib.rs +++ b/src/wasm-lib/kcl/src/lib.rs @@ -97,7 +97,9 @@ pub use source_range::{ModuleId, SourceRange}; // Rather than make executor public and make lots of it pub(crate), just re-export into a new module. // Ideally we wouldn't export these things at all, they should only be used for testing. pub mod exec { - pub use crate::execution::{DefaultPlanes, IdGenerator, KclValue, PlaneType, ProgramMemory, Sketch}; + pub use crate::execution::{ + ArtifactCommand, DefaultPlanes, IdGenerator, KclValue, PlaneType, ProgramMemory, Sketch, + }; } #[cfg(target_arch = "wasm32")] diff --git a/src/wasm-lib/kcl/src/parsing/ast/modify.rs b/src/wasm-lib/kcl/src/parsing/ast/modify.rs index 87b126397..61028b699 100644 --- a/src/wasm-lib/kcl/src/parsing/ast/modify.rs +++ b/src/wasm-lib/kcl/src/parsing/ast/modify.rs @@ -89,7 +89,7 @@ pub async fn modify_ast_for_sketch( .send_modeling_cmd( uuid::Uuid::new_v4(), SourceRange::default(), - ModelingCmd::PathGetInfo(mcmd::PathGetInfo { path_id: sketch_id }), + &ModelingCmd::PathGetInfo(mcmd::PathGetInfo { path_id: sketch_id }), ) .await?; @@ -110,13 +110,10 @@ pub async fn modify_ast_for_sketch( let mut control_points = Vec::new(); for segment in &path_info.segments { if let Some(command_id) = &segment.command_id { - let h = engine.send_modeling_cmd( - uuid::Uuid::new_v4(), - SourceRange::default(), - ModelingCmd::from(mcmd::CurveGetControlPoints { - curve_id: (*command_id).into(), - }), - ); + let cmd = ModelingCmd::from(mcmd::CurveGetControlPoints { + curve_id: (*command_id).into(), + }); + let h = engine.send_modeling_cmd(uuid::Uuid::new_v4(), SourceRange::default(), &cmd); let OkWebSocketResponseData::Modeling { modeling_response: OkModelingCmdResponse::CurveGetControlPoints(data), diff --git a/src/wasm-lib/kcl/src/parsing/parser.rs b/src/wasm-lib/kcl/src/parsing/parser.rs index 4a0310a7c..f98a32907 100644 --- a/src/wasm-lib/kcl/src/parsing/parser.rs +++ b/src/wasm-lib/kcl/src/parsing/parser.rs @@ -12,6 +12,7 @@ use winnow::{ token::{any, one_of, take_till}, }; +use super::{ast::types::LabelledExpression, token::NumericSuffix}; use crate::{ docs::StdLibFn, errors::{CompilationError, Severity, Tag}, @@ -33,8 +34,6 @@ use crate::{ SourceRange, }; -use super::{ast::types::LabelledExpression, token::NumericSuffix}; - thread_local! { /// The current `ParseContext`. `None` if parsing is not currently happening on this thread. static CTXT: RefCell> = const { RefCell::new(None) }; @@ -683,8 +682,8 @@ pub enum NonCodeOr { fn array(i: &mut TokenSlice) -> PResult { alt(( array_empty.map(Box::new).map(Expr::ArrayExpression), - array_elem_by_elem.map(Box::new).map(Expr::ArrayExpression), array_end_start.map(Box::new).map(Expr::ArrayRangeExpression), + array_elem_by_elem.map(Box::new).map(Expr::ArrayExpression), )) .parse_next(i) } @@ -732,7 +731,20 @@ pub(crate) fn array_elem_by_elem(i: &mut TokenSlice) -> PResult, HashMap) = elements.into_iter().enumerate().fold( @@ -2568,9 +2580,17 @@ fn typecheck(spec_arg: &crate::docs::StdLibFnArg, arg: &&Expr) -> PResult<()> { Ok(()) } +/// Either a positional or keyword function call. +fn fn_call_pos_or_kw(i: &mut TokenSlice) -> PResult { + alt(( + fn_call.map(Box::new).map(Expr::CallExpression), + fn_call_kw.map(Box::new).map(Expr::CallExpressionKw), + )) + .parse_next(i) +} + fn labelled_fn_call(i: &mut TokenSlice) -> PResult { - let call = fn_call.parse_next(i)?; - let expr = Expr::CallExpression(Box::new(call)); + let expr = fn_call_pos_or_kw.parse_next(i)?; let label = opt(label).parse_next(i)?; match label { @@ -4311,6 +4331,13 @@ let myBox = box([0,0], -3, -16, -10) assert_no_err(some_program_string); } + #[test] + fn test_parse_missing_closing_bracket() { + let some_program_string = r#" +sketch001 = startSketchOn('XZ') |> startProfileAt([90.45, 119.09, %)"#; + assert_err(some_program_string, "Array is missing a closing bracket(`]`)", [51, 52]); + } + #[test] fn warn_object_expr() { let some_program_string = "{ foo: bar }"; @@ -4654,6 +4681,7 @@ my14 = 4 ^ 2 - 3 ^ 2 * 2 kw_function_decl_with_default_and_type, r#"fn foo(x?: number = 2) { return 1 }"# ); + snapshot_test!(kw_function_call_in_pipe, r#"val = 1 |> f(arg = x)"#); } #[allow(unused)] diff --git a/src/wasm-lib/kcl/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_in_pipe.snap b/src/wasm-lib/kcl/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_in_pipe.snap new file mode 100644 index 000000000..c3ac2e9f7 --- /dev/null +++ b/src/wasm-lib/kcl/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_in_pipe.snap @@ -0,0 +1,75 @@ +--- +source: kcl/src/parsing/parser.rs +assertion_line: 4674 +expression: actual +snapshot_kind: text +--- +{ + "body": [ + { + "declaration": { + "end": 21, + "id": { + "end": 3, + "name": "val", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": [ + { + "end": 7, + "raw": "1", + "start": 6, + "type": "Literal", + "type": "Literal", + "value": 1.0 + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "type": "Identifier", + "name": "arg" + }, + "arg": { + "end": 20, + "name": "x", + "start": 19, + "type": "Identifier", + "type": "Identifier" + } + } + ], + "callee": { + "end": 12, + "name": "f", + "start": 11, + "type": "Identifier" + }, + "end": 21, + "start": 11, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], + "end": 21, + "start": 6, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 21, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + } + ], + "end": 21, + "start": 0 +} diff --git a/src/wasm-lib/kcl/src/simulation_tests.rs b/src/wasm-lib/kcl/src/simulation_tests.rs index fc8410efb..48a07f5ef 100644 --- a/src/wasm-lib/kcl/src/simulation_tests.rs +++ b/src/wasm-lib/kcl/src/simulation_tests.rs @@ -91,7 +91,7 @@ async fn execute(test_name: &str, render_to_png: bool) { ) .await; match exec_res { - Ok((program_memory, ops, png)) => { + Ok((program_memory, ops, artifact_commands, png)) => { if render_to_png { twenty_twenty::assert_image(format!("tests/{test_name}/rendered_model.png"), &png, 0.99); } @@ -107,6 +107,13 @@ async fn execute(test_name: &str, render_to_png: bool) { assert_snapshot(test_name, "Operations executed", || { insta::assert_json_snapshot!("ops", ops); }); + assert_snapshot(test_name, "Artifact commands", || { + insta::assert_json_snapshot!("artifact_commands", artifact_commands, { + "[].command.segment.*.x" => rounded_redaction(4), + "[].command.segment.*.y" => rounded_redaction(4), + "[].command.segment.*.z" => rounded_redaction(4), + }); + }); } Err(e) => { match e.error { @@ -115,7 +122,7 @@ async fn execute(test_name: &str, render_to_png: bool) { // This looks like a Cargo compile error, with arrows pointing // to source code, underlines, etc. let report = crate::errors::Report { - error, + error: error.error, filename: format!("{test_name}.kcl"), kcl_source: read("input.kcl", test_name), }; @@ -127,7 +134,15 @@ async fn execute(test_name: &str, render_to_png: bool) { }); assert_snapshot(test_name, "Operations executed", || { - insta::assert_json_snapshot!("ops", e.exec_state.mod_local.operations); + insta::assert_json_snapshot!("ops", error.operations); + }); + + assert_snapshot(test_name, "Artifact commands", || { + insta::assert_json_snapshot!("artifact_commands", error.artifact_commands, { + "[].command.segment.*.x" => rounded_redaction(4), + "[].command.segment.*.y" => rounded_redaction(4), + "[].command.segment.*.z" => rounded_redaction(4), + }); }); } e => { @@ -1656,3 +1671,87 @@ mod boolean_logical_multiple { super::execute(TEST_NAME, false).await } } +mod circle_three_point { + const TEST_NAME: &str = "circle_three_point"; + + /// Test parsing KCL. + #[test] + fn parse() { + super::parse(TEST_NAME) + } + + /// Test that parsing and unparsing KCL produces the original KCL input. + #[test] + fn unparse() { + super::unparse(TEST_NAME) + } + + /// Test that KCL is executed correctly. + #[tokio::test(flavor = "multi_thread")] + async fn kcl_test_execute() { + super::execute(TEST_NAME, true).await + } +} +mod array_elem_pop { + const TEST_NAME: &str = "array_elem_pop"; + + /// Test parsing KCL. + #[test] + fn parse() { + super::parse(TEST_NAME) + } + + /// Test that parsing and unparsing KCL produces the original KCL input. + #[test] + fn unparse() { + super::unparse(TEST_NAME) + } + + /// Test that KCL is executed correctly. + #[tokio::test(flavor = "multi_thread")] + async fn kcl_test_execute() { + super::execute(TEST_NAME, false).await + } +} +mod array_elem_pop_empty_fail { + const TEST_NAME: &str = "array_elem_pop_empty_fail"; + + /// Test parsing KCL. + #[test] + fn parse() { + super::parse(TEST_NAME) + } + + /// Test that parsing and unparsing KCL produces the original KCL input. + #[test] + fn unparse() { + super::unparse(TEST_NAME) + } + + /// Test that KCL is executed correctly. + #[tokio::test(flavor = "multi_thread")] + async fn kcl_test_execute() { + super::execute(TEST_NAME, false).await + } +} +mod array_elem_pop_fail { + const TEST_NAME: &str = "array_elem_pop_fail"; + + /// Test parsing KCL. + #[test] + fn parse() { + super::parse(TEST_NAME) + } + + /// Test that parsing and unparsing KCL produces the original KCL input. + #[test] + fn unparse() { + super::unparse(TEST_NAME) + } + + /// Test that KCL is executed correctly. + #[tokio::test(flavor = "multi_thread")] + async fn kcl_test_execute() { + super::execute(TEST_NAME, false).await + } +} diff --git a/src/wasm-lib/kcl/src/std/args.rs b/src/wasm-lib/kcl/src/std/args.rs index 3cf06630f..e2e3ec871 100644 --- a/src/wasm-lib/kcl/src/std/args.rs +++ b/src/wasm-lib/kcl/src/std/args.rs @@ -8,12 +8,12 @@ use super::shapes::PolygonType; use crate::{ errors::{KclError, KclErrorDetails}, execution::{ - ExecState, ExecutorContext, ExtrudeSurface, KclObjectFields, KclValue, Metadata, Sketch, SketchSet, + ExecState, ExecutorContext, ExtrudeSurface, Helix, KclObjectFields, KclValue, Metadata, Sketch, SketchSet, SketchSurface, Solid, SolidSet, TagIdentifier, }, parsing::ast::types::TagNode, source_range::SourceRange, - std::{shapes::SketchOrSurface, sketch::FaceTag, FnAsArg}, + std::{shapes::SketchOrSurface, sketch::FaceTag, sweep::SweepPath, FnAsArg}, ModuleId, }; @@ -185,7 +185,7 @@ impl Args { id: uuid::Uuid, cmd: ModelingCmd, ) -> Result { - self.ctx.engine.send_modeling_cmd(id, self.source_range, cmd).await + self.ctx.engine.send_modeling_cmd(id, self.source_range, &cmd).await } fn get_tag_info_from_memory<'a, 'e>( @@ -322,15 +322,6 @@ impl Args { ) } - pub(crate) fn make_user_val_from_i64(&self, n: i64) -> KclValue { - KclValue::Int { - value: n, - meta: vec![Metadata { - source_range: self.source_range, - }], - } - } - pub(crate) fn make_user_val_from_f64_array(&self, f: Vec) -> Result { let array = f .into_iter() @@ -643,7 +634,7 @@ where message: format!( "Argument at index {i} was supposed to be type {} but found {}", type_name::(), - arg.value.human_friendly_type() + arg.value.human_friendly_type(), ), source_ranges: arg.source_ranges(), })); @@ -1114,13 +1105,34 @@ impl<'a> FromKclValue<'a> for super::appearance::AppearanceData { } impl<'a> FromKclValue<'a> for super::helix::HelixData { + fn from_kcl_val(arg: &'a KclValue) -> Option { + let obj = arg.as_object()?; + let_field_of!(obj, revolutions); + let_field_of!(obj, length); + let_field_of!(obj, ccw?); + let_field_of!(obj, radius); + let_field_of!(obj, axis); + let ccw = ccw.unwrap_or_default(); + let angle_start = obj.get("angleStart")?.as_f64()?; + Some(Self { + revolutions, + angle_start, + ccw, + length, + radius, + axis, + }) + } +} + +impl<'a> FromKclValue<'a> for super::helix::HelixRevolutionsData { fn from_kcl_val(arg: &'a KclValue) -> Option { let obj = arg.as_object()?; let_field_of!(obj, revolutions); let_field_of!(obj, length?); let_field_of!(obj, ccw?); let ccw = ccw.unwrap_or_default(); - let angle_start = obj.get("angleStart").or_else(|| obj.get("angle_start"))?.as_f64()?; + let angle_start = obj.get("angleStart")?.as_f64()?; Some(Self { revolutions, angle_start, @@ -1168,8 +1180,8 @@ impl<'a> FromKclValue<'a> for super::sketch::ArcData { let obj = arg.as_object()?; let_field_of!(obj, radius); let case1 = || { - let angle_start = obj.get("angleStart").or_else(|| obj.get("angle_start"))?.as_f64()?; - let angle_end = obj.get("angleEnd").or_else(|| obj.get("angle_end"))?.as_f64()?; + let angle_start = obj.get("angleStart")?.as_f64()?; + let angle_end = obj.get("angleEnd")?.as_f64()?; Some(Self::AnglesAndRadius { angle_start, angle_end, @@ -1265,21 +1277,9 @@ impl<'a> FromKclValue<'a> for super::sketch::PlaneData { let obj = arg.as_object()?; let_field_of!(obj, plane, &KclObjectFields); let origin = plane.get("origin").and_then(FromKclValue::from_kcl_val).map(Box::new)?; - let x_axis = plane - .get("xAxis") - .or_else(|| plane.get("x_axis")) - .and_then(FromKclValue::from_kcl_val) - .map(Box::new)?; - let y_axis = plane - .get("yAxis") - .or_else(|| plane.get("y_axis")) - .and_then(FromKclValue::from_kcl_val) - .map(Box::new)?; - let z_axis = plane - .get("zAxis") - .or_else(|| plane.get("z_axis")) - .and_then(FromKclValue::from_kcl_val) - .map(Box::new)?; + let x_axis = plane.get("xAxis").and_then(FromKclValue::from_kcl_val).map(Box::new)?; + let y_axis = plane.get("yAxis").and_then(FromKclValue::from_kcl_val).map(Box::new)?; + let z_axis = plane.get("zAxis").and_then(FromKclValue::from_kcl_val).map(Box::new)?; Some(Self::Plane { origin, x_axis, @@ -1451,7 +1451,7 @@ impl<'a> FromKclValue<'a> for super::sketch::SketchData { } } -impl<'a> FromKclValue<'a> for super::revolve::AxisAndOrigin { +impl<'a> FromKclValue<'a> for super::axis_or_reference::AxisAndOrigin2d { fn from_kcl_val(arg: &'a KclValue) -> Option { // Case 1: predefined planes. if let Some(s) = arg.as_str() { @@ -1472,6 +1472,29 @@ impl<'a> FromKclValue<'a> for super::revolve::AxisAndOrigin { } } +impl<'a> FromKclValue<'a> for super::axis_or_reference::AxisAndOrigin3d { + fn from_kcl_val(arg: &'a KclValue) -> Option { + // Case 1: predefined planes. + if let Some(s) = arg.as_str() { + return match s { + "X" | "x" => Some(Self::X), + "Y" | "y" => Some(Self::Y), + "Z" | "z" => Some(Self::Z), + "-X" | "-x" => Some(Self::NegX), + "-Y" | "-y" => Some(Self::NegY), + "-Z" | "-z" => Some(Self::NegZ), + _ => None, + }; + } + // Case 2: custom planes. + let obj = arg.as_object()?; + let_field_of!(obj, custom, &KclObjectFields); + let_field_of!(custom, origin); + let_field_of!(custom, axis); + Some(Self::Custom { axis, origin }) + } +} + impl<'a> FromKclValue<'a> for super::fillet::EdgeReference { fn from_kcl_val(arg: &'a KclValue) -> Option { let id = arg.as_uuid().map(Self::Uuid); @@ -1480,9 +1503,17 @@ impl<'a> FromKclValue<'a> for super::fillet::EdgeReference { } } -impl<'a> FromKclValue<'a> for super::revolve::AxisOrEdgeReference { +impl<'a> FromKclValue<'a> for super::axis_or_reference::Axis2dOrEdgeReference { fn from_kcl_val(arg: &'a KclValue) -> Option { - let case1 = super::revolve::AxisAndOrigin::from_kcl_val; + let case1 = super::axis_or_reference::AxisAndOrigin2d::from_kcl_val; + let case2 = super::fillet::EdgeReference::from_kcl_val; + case1(arg).map(Self::Axis).or_else(|| case2(arg).map(Self::Edge)) + } +} + +impl<'a> FromKclValue<'a> for super::axis_or_reference::Axis3dOrEdgeReference { + fn from_kcl_val(arg: &'a KclValue) -> Option { + let case1 = super::axis_or_reference::AxisAndOrigin3d::from_kcl_val; let case2 = super::fillet::EdgeReference::from_kcl_val; case1(arg).map(Self::Axis).or_else(|| case2(arg).map(Self::Edge)) } @@ -1593,6 +1624,24 @@ impl<'a> FromKclValue<'a> for Sketch { Some(value.as_ref().to_owned()) } } + +impl<'a> FromKclValue<'a> for Helix { + fn from_kcl_val(arg: &'a KclValue) -> Option { + let KclValue::Helix(value) = arg else { + return None; + }; + Some(value.as_ref().to_owned()) + } +} +impl<'a> FromKclValue<'a> for SweepPath { + fn from_kcl_val(arg: &'a KclValue) -> Option { + let case1 = Sketch::from_kcl_val; + let case2 = Helix::from_kcl_val; + case1(arg) + .map(Self::Sketch) + .or_else(|| case2(arg).map(|arg0: Helix| Self::Helix(Box::new(arg0)))) + } +} impl<'a> FromKclValue<'a> for String { fn from_kcl_val(arg: &'a KclValue) -> Option { let KclValue::String { value, meta: _ } = arg else { diff --git a/src/wasm-lib/kcl/src/std/array.rs b/src/wasm-lib/kcl/src/std/array.rs index 37299e784..65bca4742 100644 --- a/src/wasm-lib/kcl/src/std/array.rs +++ b/src/wasm-lib/kcl/src/std/array.rs @@ -256,3 +256,55 @@ pub async fn push(_exec_state: &mut ExecState, args: Args) -> Result, args: &Args) -> Result { + if array.is_empty() { + return Err(KclError::Semantic(KclErrorDetails { + message: "Cannot pop from an empty array".to_string(), + source_ranges: vec![args.source_range], + })); + } + + // Create a new array with all elements except the last one + let new_array = array[..array.len() - 1].to_vec(); + + Ok(KclValue::Array { + value: new_array, + meta: vec![args.source_range.into()], + }) +} + +pub async fn pop(_exec_state: &mut ExecState, args: Args) -> Result { + // Extract the array from the arguments + let val = args.get_unlabeled_kw_arg("array")?; + + let meta = vec![args.source_range]; + let KclValue::Array { value: array, meta: _ } = val else { + let actual_type = val.human_friendly_type(); + return Err(KclError::Semantic(KclErrorDetails { + source_ranges: meta, + message: format!("You can't pop from a value of type {actual_type}, only an array"), + })); + }; + + inner_pop(array, &args).await +} diff --git a/src/wasm-lib/kcl/src/std/axis_or_reference.rs b/src/wasm-lib/kcl/src/std/axis_or_reference.rs new file mode 100644 index 000000000..623acb160 --- /dev/null +++ b/src/wasm-lib/kcl/src/std/axis_or_reference.rs @@ -0,0 +1,233 @@ +//! Types for referencing an axis or edge. + +use anyhow::Result; +use kcmc::length_unit::LengthUnit; +use kittycad_modeling_cmds::{self as kcmc}; +use schemars::JsonSchema; +use serde::{Deserialize, Serialize}; + +use crate::{errors::KclError, std::fillet::EdgeReference}; + +/// A 2D axis or tagged edge. +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] +#[ts(export)] +#[serde(untagged)] +pub enum Axis2dOrEdgeReference { + /// 2D axis and origin. + Axis(AxisAndOrigin2d), + /// Tagged edge. + Edge(EdgeReference), +} + +/// A 2D axis and origin. +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] +#[ts(export)] +#[serde(rename_all = "camelCase")] +pub enum AxisAndOrigin2d { + /// X-axis. + #[serde(rename = "X", alias = "x")] + X, + /// Y-axis. + #[serde(rename = "Y", alias = "y")] + Y, + /// Flip the X-axis. + #[serde(rename = "-X", alias = "-x")] + NegX, + /// Flip the Y-axis. + #[serde(rename = "-Y", alias = "-y")] + NegY, + Custom { + /// The axis. + axis: [f64; 2], + /// The origin. + origin: [f64; 2], + }, +} + +impl AxisAndOrigin2d { + /// Get the axis and origin. + pub fn axis_and_origin(&self) -> Result<(kcmc::shared::Point3d, kcmc::shared::Point3d), KclError> { + let (axis, origin) = match self { + AxisAndOrigin2d::X => ([1.0, 0.0, 0.0], [0.0, 0.0, 0.0]), + AxisAndOrigin2d::Y => ([0.0, 1.0, 0.0], [0.0, 0.0, 0.0]), + AxisAndOrigin2d::NegX => ([-1.0, 0.0, 0.0], [0.0, 0.0, 0.0]), + AxisAndOrigin2d::NegY => ([0.0, -1.0, 0.0], [0.0, 0.0, 0.0]), + AxisAndOrigin2d::Custom { axis, origin } => ([axis[0], axis[1], 0.0], [origin[0], origin[1], 0.0]), + }; + + Ok(( + kcmc::shared::Point3d { + x: axis[0], + y: axis[1], + z: axis[2], + }, + kcmc::shared::Point3d { + x: LengthUnit(origin[0]), + y: LengthUnit(origin[1]), + z: LengthUnit(origin[2]), + }, + )) + } +} + +/// A 3D axis or tagged edge. +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] +#[ts(export)] +#[serde(untagged)] +pub enum Axis3dOrEdgeReference { + /// 3D axis and origin. + Axis(AxisAndOrigin3d), + /// Tagged edge. + Edge(EdgeReference), +} + +/// A 3D axis and origin. +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] +#[ts(export)] +#[serde(rename_all = "camelCase")] +pub enum AxisAndOrigin3d { + /// X-axis. + #[serde(rename = "X", alias = "x")] + X, + /// Y-axis. + #[serde(rename = "Y", alias = "y")] + Y, + /// Z-axis. + #[serde(rename = "Z", alias = "z")] + Z, + /// Flip the X-axis. + #[serde(rename = "-X", alias = "-x")] + NegX, + /// Flip the Y-axis. + #[serde(rename = "-Y", alias = "-y")] + NegY, + /// Flip the Z-axis. + #[serde(rename = "-Z", alias = "-z")] + NegZ, + Custom { + /// The axis. + axis: [f64; 3], + /// The origin. + origin: [f64; 3], + }, +} + +impl AxisAndOrigin3d { + /// Get the axis and origin. + pub fn axis_and_origin(&self) -> Result<(kcmc::shared::Point3d, kcmc::shared::Point3d), KclError> { + let (axis, origin) = match self { + AxisAndOrigin3d::X => ([1.0, 0.0, 0.0], [0.0, 0.0, 0.0]), + AxisAndOrigin3d::Y => ([0.0, 1.0, 0.0], [0.0, 0.0, 0.0]), + AxisAndOrigin3d::Z => ([0.0, 0.0, 1.0], [0.0, 0.0, 0.0]), + AxisAndOrigin3d::NegX => ([-1.0, 0.0, 0.0], [0.0, 0.0, 0.0]), + AxisAndOrigin3d::NegY => ([0.0, -1.0, 0.0], [0.0, 0.0, 0.0]), + AxisAndOrigin3d::NegZ => ([0.0, 0.0, -1.0], [0.0, 0.0, 0.0]), + AxisAndOrigin3d::Custom { axis, origin } => { + ([axis[0], axis[1], axis[2]], [origin[0], origin[1], origin[2]]) + } + }; + + Ok(( + kcmc::shared::Point3d { + x: axis[0], + y: axis[1], + z: axis[2], + }, + kcmc::shared::Point3d { + x: LengthUnit(origin[0]), + y: LengthUnit(origin[1]), + z: LengthUnit(origin[2]), + }, + )) + } +} + +#[cfg(test)] +mod tests { + + use pretty_assertions::assert_eq; + + use crate::std::axis_or_reference::{ + Axis2dOrEdgeReference, Axis3dOrEdgeReference, AxisAndOrigin2d, AxisAndOrigin3d, + }; + + #[test] + fn test_deserialize_revolve_axis_2d() { + let data = Axis2dOrEdgeReference::Axis(AxisAndOrigin2d::X); + let mut str_json = serde_json::to_string(&data).unwrap(); + assert_eq!(str_json, "\"X\""); + + str_json = "\"Y\"".to_string(); + let data: Axis2dOrEdgeReference = serde_json::from_str(&str_json).unwrap(); + assert_eq!(data, Axis2dOrEdgeReference::Axis(AxisAndOrigin2d::Y)); + + str_json = "\"-Y\"".to_string(); + let data: Axis2dOrEdgeReference = serde_json::from_str(&str_json).unwrap(); + assert_eq!(data, Axis2dOrEdgeReference::Axis(AxisAndOrigin2d::NegY)); + + str_json = "\"-x\"".to_string(); + let data: Axis2dOrEdgeReference = serde_json::from_str(&str_json).unwrap(); + assert_eq!(data, Axis2dOrEdgeReference::Axis(AxisAndOrigin2d::NegX)); + + let data = Axis2dOrEdgeReference::Axis(AxisAndOrigin2d::Custom { + axis: [0.0, -1.0], + origin: [1.0, 0.0], + }); + str_json = serde_json::to_string(&data).unwrap(); + assert_eq!(str_json, r#"{"custom":{"axis":[0.0,-1.0],"origin":[1.0,0.0]}}"#); + + str_json = r#"{"custom": {"axis": [0,-1], "origin": [1,2.0]}}"#.to_string(); + let data: Axis2dOrEdgeReference = serde_json::from_str(&str_json).unwrap(); + assert_eq!( + data, + Axis2dOrEdgeReference::Axis(AxisAndOrigin2d::Custom { + axis: [0.0, -1.0], + origin: [1.0, 2.0] + }) + ); + } + + #[test] + fn test_deserialize_revolve_axis_3d() { + let data = Axis3dOrEdgeReference::Axis(AxisAndOrigin3d::X); + let mut str_json = serde_json::to_string(&data).unwrap(); + assert_eq!(str_json, "\"X\""); + + str_json = "\"Y\"".to_string(); + let data: Axis3dOrEdgeReference = serde_json::from_str(&str_json).unwrap(); + assert_eq!(data, Axis3dOrEdgeReference::Axis(AxisAndOrigin3d::Y)); + + str_json = "\"Z\"".to_string(); + let data: Axis3dOrEdgeReference = serde_json::from_str(&str_json).unwrap(); + assert_eq!(data, Axis3dOrEdgeReference::Axis(AxisAndOrigin3d::Z)); + + str_json = "\"-Y\"".to_string(); + let data: Axis3dOrEdgeReference = serde_json::from_str(&str_json).unwrap(); + assert_eq!(data, Axis3dOrEdgeReference::Axis(AxisAndOrigin3d::NegY)); + + str_json = "\"-x\"".to_string(); + let data: Axis3dOrEdgeReference = serde_json::from_str(&str_json).unwrap(); + assert_eq!(data, Axis3dOrEdgeReference::Axis(AxisAndOrigin3d::NegX)); + + str_json = "\"-z\"".to_string(); + let data: Axis3dOrEdgeReference = serde_json::from_str(&str_json).unwrap(); + assert_eq!(data, Axis3dOrEdgeReference::Axis(AxisAndOrigin3d::NegZ)); + + let data = Axis3dOrEdgeReference::Axis(AxisAndOrigin3d::Custom { + axis: [0.0, -1.0, 0.0], + origin: [1.0, 0.0, 0.0], + }); + str_json = serde_json::to_string(&data).unwrap(); + assert_eq!(str_json, r#"{"custom":{"axis":[0.0,-1.0,0.0],"origin":[1.0,0.0,0.0]}}"#); + + str_json = r#"{"custom": {"axis": [0,-1,0], "origin": [1,2.0,0]}}"#.to_string(); + let data: Axis3dOrEdgeReference = serde_json::from_str(&str_json).unwrap(); + assert_eq!( + data, + Axis3dOrEdgeReference::Axis(AxisAndOrigin3d::Custom { + axis: [0.0, -1.0, 0.0], + origin: [1.0, 2.0, 0.0] + }) + ); + } +} diff --git a/src/wasm-lib/kcl/src/std/extrude.rs b/src/wasm-lib/kcl/src/std/extrude.rs index e8a672d12..5ffab97c2 100644 --- a/src/wasm-lib/kcl/src/std/extrude.rs +++ b/src/wasm-lib/kcl/src/std/extrude.rs @@ -122,7 +122,7 @@ async fn inner_extrude( // Disable the sketch mode. args.batch_modeling_cmd( exec_state.next_uuid(), - ModelingCmd::SketchModeDisable(mcmd::SketchModeDisable {}), + ModelingCmd::SketchModeDisable(mcmd::SketchModeDisable::default()), ) .await?; solids.push(do_post_extrude(sketch.clone(), length, exec_state, args.clone()).await?); diff --git a/src/wasm-lib/kcl/src/std/helix.rs b/src/wasm-lib/kcl/src/std/helix.rs index e4834e079..fdad3cb5d 100644 --- a/src/wasm-lib/kcl/src/std/helix.rs +++ b/src/wasm-lib/kcl/src/std/helix.rs @@ -9,18 +9,149 @@ use serde::{Deserialize, Serialize}; use crate::{ errors::KclError, - execution::{ExecState, KclValue, Solid}, - std::Args, + execution::{ExecState, Helix as HelixValue, KclValue, Solid}, + std::{axis_or_reference::Axis3dOrEdgeReference, Args}, }; -/// Data for helices. +/// Data for a helix. #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] #[ts(export)] pub struct HelixData { /// Number of revolutions. pub revolutions: f64, /// Start angle (in degrees). - #[serde(rename = "angleStart", alias = "angle_start")] + #[serde(rename = "angleStart")] + pub angle_start: f64, + /// Is the helix rotation counter clockwise? + /// The default is `false`. + #[serde(default)] + pub ccw: bool, + /// Length of the helix. + pub length: f64, + /// Radius of the helix. + pub radius: f64, + /// Axis to use as mirror. + pub axis: Axis3dOrEdgeReference, +} + +/// Create a helix. +pub async fn helix(exec_state: &mut ExecState, args: Args) -> Result { + let data: HelixData = args.get_data()?; + + let helix = inner_helix(data, exec_state, args).await?; + Ok(KclValue::Helix(helix)) +} + +/// Create a helix. +/// +/// ```no_run +/// // Create a helix around the Z axis. +/// helixPath = helix({ +/// angleStart = 0, +/// ccw = true, +/// revolutions = 16, +/// length = 10, +/// radius = 5, +/// axis = 'Z', +/// }) +/// +/// +/// // Create a spring by sweeping around the helix path. +/// springSketch = startSketchOn('YZ') +/// |> circle({ center = [0, 0], radius = 1 }, %) +/// //|> sweep({ path = helixPath }, %) +/// ``` +/// +/// ```no_run +/// // Create a helix around an edge. +/// /*helper001 = startSketchOn('XZ') +/// |> startProfileAt([0, 0], %) +/// |> line([0, 10], %, $edge001) +/// +/// helixPath = helix({ +/// angleStart = 0, +/// ccw = true, +/// revolutions = 16, +/// length = 10, +/// radius = 5, +/// axis = edge001, +/// }) +/// +/// // Create a spring by sweeping around the helix path. +/// springSketch = startSketchOn('XY') +/// |> circle({ center = [0, 0], radius = 1 }, %) +/// |> sweep({ path = helixPath }, %)*/ +/// ``` +#[stdlib { + name = "helix", + feature_tree_operation = true, +}] +async fn inner_helix(data: HelixData, exec_state: &mut ExecState, args: Args) -> Result, KclError> { + let id = exec_state.next_uuid(); + + let helix_result = Box::new(HelixValue { + value: id, + revolutions: data.revolutions, + angle_start: data.angle_start, + ccw: data.ccw, + meta: vec![args.source_range.into()], + }); + + if args.ctx.is_mock() { + return Ok(helix_result); + } + + match data.axis { + Axis3dOrEdgeReference::Axis(axis) => { + let (axis, origin) = axis.axis_and_origin()?; + + args.batch_modeling_cmd( + exec_state.next_uuid(), + ModelingCmd::from(mcmd::EntityMakeHelixFromParams { + radius: data.radius, + is_clockwise: !data.ccw, + length: LengthUnit(data.length), + revolutions: data.revolutions, + start_angle: Angle::from_degrees(data.angle_start), + axis, + center: origin, + }), + ) + .await?; + } + Axis3dOrEdgeReference::Edge(_edge) => { + /*let edge_id = edge.get_engine_id(exec_state, &args)?; + + args.batch_modeling_cmd( + exec_state.next_uuid(), + ModelingCmd::from(mcmd::EntityMakeHelixFromEdge { + radius: data.radius, + is_clockwise: !data.ccw, + length: LengthUnit(data.length), + revolutions: data.revolutions, + start_angle: Angle::from_degrees(data.angle_start), + edge_id, + }), + ) + .await?;*/ + return Err(KclError::Unimplemented(crate::errors::KclErrorDetails { + message: "Helix around edge is not yet implemented".to_string(), + source_ranges: vec![args.source_range], + })); + } + }; + + Ok(helix_result) +} + +/// Data for helix revolutions. +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] +#[ts(export)] +pub struct HelixRevolutionsData { + /// Number of revolutions. + pub revolutions: f64, + /// Start angle (in degrees). + #[serde(rename = "angleStart")] pub angle_start: f64, /// Is the helix rotation counter clockwise? /// The default is `false`. @@ -32,10 +163,10 @@ pub struct HelixData { } /// Create a helix on a cylinder. -pub async fn helix(exec_state: &mut ExecState, args: Args) -> Result { - let (data, solid): (HelixData, Box) = args.get_data_and_solid()?; +pub async fn helix_revolutions(exec_state: &mut ExecState, args: Args) -> Result { + let (data, solid): (HelixRevolutionsData, Box) = args.get_data_and_solid()?; - let solid = inner_helix(data, solid, exec_state, args).await?; + let solid = inner_helix_revolutions(data, solid, exec_state, args).await?; Ok(KclValue::Solid(solid)) } @@ -45,18 +176,18 @@ pub async fn helix(exec_state: &mut ExecState, args: Args) -> Result circle({ center: [5, 5], radius: 10 }, %) /// |> extrude(10, %) -/// |> helix({ +/// |> helixRevolutions({ /// angleStart = 0, /// ccw = true, /// revolutions = 16, /// }, %) /// ``` #[stdlib { - name = "helix", + name = "helixRevolutions", feature_tree_operation = true, }] -async fn inner_helix( - data: HelixData, +async fn inner_helix_revolutions( + data: HelixRevolutionsData, solid: Box, exec_state: &mut ExecState, args: Args, diff --git a/src/wasm-lib/kcl/src/std/math.rs b/src/wasm-lib/kcl/src/std/math.rs index b4055eb97..72ad04672 100644 --- a/src/wasm-lib/kcl/src/std/math.rs +++ b/src/wasm-lib/kcl/src/std/math.rs @@ -16,9 +16,9 @@ use super::args::FromArgs; pub async fn rem(_exec_state: &mut ExecState, args: Args) -> Result { let n = args.get_unlabeled_kw_arg("number to divide")?; let d = args.get_kw_arg("divisor")?; - let result = inner_rem(n, d)?; + let remainder = inner_rem(n, d); - Ok(args.make_user_val_from_i64(result)) + Ok(args.make_user_val_from_f64(remainder)) } /// Compute the remainder after dividing `num` by `div`. @@ -28,6 +28,9 @@ pub async fn rem(_exec_state: &mut ExecState, args: Args) -> Result Result Result { - Ok(num % divisor) +fn inner_rem(num: f64, divisor: f64) -> f64 { + num % divisor } /// Compute the cosine of a number (in radians). diff --git a/src/wasm-lib/kcl/src/std/mirror.rs b/src/wasm-lib/kcl/src/std/mirror.rs index 3882e611b..fac5b7708 100644 --- a/src/wasm-lib/kcl/src/std/mirror.rs +++ b/src/wasm-lib/kcl/src/std/mirror.rs @@ -10,7 +10,7 @@ use serde::{Deserialize, Serialize}; use crate::{ errors::KclError, execution::{ExecState, KclValue, Sketch, SketchSet}, - std::{revolve::AxisOrEdgeReference, Args}, + std::{axis_or_reference::Axis2dOrEdgeReference, Args}, }; /// Data for a mirror. @@ -19,7 +19,7 @@ use crate::{ #[serde(rename_all = "camelCase")] pub struct Mirror2dData { /// Axis to use as mirror. - pub axis: AxisOrEdgeReference, + pub axis: Axis2dOrEdgeReference, } /// Mirror a sketch. @@ -117,7 +117,7 @@ async fn inner_mirror_2d( } match data.axis { - AxisOrEdgeReference::Axis(axis) => { + Axis2dOrEdgeReference::Axis(axis) => { let (axis, origin) = axis.axis_and_origin()?; args.batch_modeling_cmd( @@ -130,7 +130,7 @@ async fn inner_mirror_2d( ) .await?; } - AxisOrEdgeReference::Edge(edge) => { + Axis2dOrEdgeReference::Edge(edge) => { let edge_id = edge.get_engine_id(exec_state, &args)?; args.batch_modeling_cmd( diff --git a/src/wasm-lib/kcl/src/std/mod.rs b/src/wasm-lib/kcl/src/std/mod.rs index 4a280031c..0e9ae818b 100644 --- a/src/wasm-lib/kcl/src/std/mod.rs +++ b/src/wasm-lib/kcl/src/std/mod.rs @@ -4,6 +4,7 @@ pub mod appearance; pub mod args; pub mod array; pub mod assert; +pub mod axis_or_reference; pub mod chamfer; pub mod convert; pub mod extrude; @@ -69,6 +70,7 @@ lazy_static! { Box::new(crate::std::segment::AngleToMatchLengthX), Box::new(crate::std::segment::AngleToMatchLengthY), Box::new(crate::std::shapes::Circle), + Box::new(crate::std::shapes::CircleThreePoint), Box::new(crate::std::shapes::Polygon), Box::new(crate::std::sketch::LineTo), Box::new(crate::std::sketch::Line), @@ -106,12 +108,14 @@ lazy_static! { Box::new(crate::std::array::Reduce), Box::new(crate::std::array::Map), Box::new(crate::std::array::Push), + Box::new(crate::std::array::Pop), Box::new(crate::std::chamfer::Chamfer), Box::new(crate::std::fillet::Fillet), Box::new(crate::std::fillet::GetOppositeEdge), Box::new(crate::std::fillet::GetNextAdjacentEdge), Box::new(crate::std::fillet::GetPreviousAdjacentEdge), Box::new(crate::std::helix::Helix), + Box::new(crate::std::helix::HelixRevolutions), Box::new(crate::std::shell::Shell), Box::new(crate::std::shell::Hollow), Box::new(crate::std::revolve::Revolve), diff --git a/src/wasm-lib/kcl/src/std/revolve.rs b/src/wasm-lib/kcl/src/std/revolve.rs index e617153e7..0eabf973a 100644 --- a/src/wasm-lib/kcl/src/std/revolve.rs +++ b/src/wasm-lib/kcl/src/std/revolve.rs @@ -10,11 +10,7 @@ use serde::{Deserialize, Serialize}; use crate::{ errors::{KclError, KclErrorDetails}, execution::{ExecState, KclValue, Sketch, Solid}, - std::{ - extrude::do_post_extrude, - fillet::{default_tolerance, EdgeReference}, - Args, - }, + std::{axis_or_reference::Axis2dOrEdgeReference, extrude::do_post_extrude, fillet::default_tolerance, Args}, }; /// Data for revolution surfaces. @@ -26,74 +22,12 @@ pub struct RevolveData { #[schemars(range(min = -360.0, max = 360.0))] pub angle: Option, /// Axis of revolution. - pub axis: AxisOrEdgeReference, + pub axis: Axis2dOrEdgeReference, /// Tolerance for the revolve operation. #[serde(default)] pub tolerance: Option, } -/// Axis or tagged edge. -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] -#[ts(export)] -#[serde(untagged)] -pub enum AxisOrEdgeReference { - /// Axis and origin. - Axis(AxisAndOrigin), - /// Tagged edge. - Edge(EdgeReference), -} - -/// Axis and origin. -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] -#[ts(export)] -#[serde(rename_all = "camelCase")] -pub enum AxisAndOrigin { - /// X-axis. - #[serde(rename = "X", alias = "x")] - X, - /// Y-axis. - #[serde(rename = "Y", alias = "y")] - Y, - /// Flip the X-axis. - #[serde(rename = "-X", alias = "-x")] - NegX, - /// Flip the Y-axis. - #[serde(rename = "-Y", alias = "-y")] - NegY, - Custom { - /// The axis. - axis: [f64; 2], - /// The origin. - origin: [f64; 2], - }, -} - -impl AxisAndOrigin { - /// Get the axis and origin. - pub fn axis_and_origin(&self) -> Result<(kcmc::shared::Point3d, kcmc::shared::Point3d), KclError> { - let (axis, origin) = match self { - AxisAndOrigin::X => ([1.0, 0.0, 0.0], [0.0, 0.0, 0.0]), - AxisAndOrigin::Y => ([0.0, 1.0, 0.0], [0.0, 0.0, 0.0]), - AxisAndOrigin::NegX => ([-1.0, 0.0, 0.0], [0.0, 0.0, 0.0]), - AxisAndOrigin::NegY => ([0.0, -1.0, 0.0], [0.0, 0.0, 0.0]), - AxisAndOrigin::Custom { axis, origin } => ([axis[0], axis[1], 0.0], [origin[0], origin[1], 0.0]), - }; - - Ok(( - kcmc::shared::Point3d { - x: axis[0], - y: axis[1], - z: axis[2], - }, - kcmc::shared::Point3d { - x: LengthUnit(origin[0]), - y: LengthUnit(origin[1]), - z: LengthUnit(origin[2]), - }, - )) - } -} - /// Revolve a sketch around an axis. pub async fn revolve(exec_state: &mut ExecState, args: Args) -> Result { let (data, sketch): (RevolveData, Sketch) = args.get_data_and_sketch()?; @@ -266,7 +200,7 @@ async fn inner_revolve( let id = exec_state.next_uuid(); match data.axis { - AxisOrEdgeReference::Axis(axis) => { + Axis2dOrEdgeReference::Axis(axis) => { let (axis, origin) = axis.axis_and_origin()?; args.batch_modeling_cmd( id, @@ -281,7 +215,7 @@ async fn inner_revolve( ) .await?; } - AxisOrEdgeReference::Edge(edge) => { + Axis2dOrEdgeReference::Edge(edge) => { let edge_id = edge.get_engine_id(exec_state, &args)?; args.batch_modeling_cmd( id, @@ -298,47 +232,3 @@ async fn inner_revolve( do_post_extrude(sketch, 0.0, exec_state, args).await } - -#[cfg(test)] -mod tests { - - use pretty_assertions::assert_eq; - - use crate::std::revolve::{AxisAndOrigin, AxisOrEdgeReference}; - - #[test] - fn test_deserialize_revolve_axis() { - let data = AxisOrEdgeReference::Axis(AxisAndOrigin::X); - let mut str_json = serde_json::to_string(&data).unwrap(); - assert_eq!(str_json, "\"X\""); - - str_json = "\"Y\"".to_string(); - let data: AxisOrEdgeReference = serde_json::from_str(&str_json).unwrap(); - assert_eq!(data, AxisOrEdgeReference::Axis(AxisAndOrigin::Y)); - - str_json = "\"-Y\"".to_string(); - let data: AxisOrEdgeReference = serde_json::from_str(&str_json).unwrap(); - assert_eq!(data, AxisOrEdgeReference::Axis(AxisAndOrigin::NegY)); - - str_json = "\"-x\"".to_string(); - let data: AxisOrEdgeReference = serde_json::from_str(&str_json).unwrap(); - assert_eq!(data, AxisOrEdgeReference::Axis(AxisAndOrigin::NegX)); - - let data = AxisOrEdgeReference::Axis(AxisAndOrigin::Custom { - axis: [0.0, -1.0], - origin: [1.0, 0.0], - }); - str_json = serde_json::to_string(&data).unwrap(); - assert_eq!(str_json, r#"{"custom":{"axis":[0.0,-1.0],"origin":[1.0,0.0]}}"#); - - str_json = r#"{"custom": {"axis": [0,-1], "origin": [1,2.0]}}"#.to_string(); - let data: AxisOrEdgeReference = serde_json::from_str(&str_json).unwrap(); - assert_eq!( - data, - AxisOrEdgeReference::Axis(AxisAndOrigin::Custom { - axis: [0.0, -1.0], - origin: [1.0, 2.0] - }) - ); - } -} diff --git a/src/wasm-lib/kcl/src/std/shapes.rs b/src/wasm-lib/kcl/src/std/shapes.rs index 1aca88cbe..456c133db 100644 --- a/src/wasm-lib/kcl/src/std/shapes.rs +++ b/src/wasm-lib/kcl/src/std/shapes.rs @@ -17,7 +17,10 @@ use crate::{ errors::{KclError, KclErrorDetails}, execution::{BasePath, ExecState, GeoMeta, KclValue, Path, Sketch, SketchSurface}, parsing::ast::types::TagNode, - std::Args, + std::{ + utils::{calculate_circle_center, distance}, + Args, + }, }; /// A sketch surface or a sketch. @@ -145,6 +148,64 @@ async fn inner_circle( Ok(new_sketch) } +/// Sketch a 3-point circle. +pub async fn circle_three_point(exec_state: &mut ExecState, args: Args) -> Result { + let p1 = args.get_kw_arg("p1")?; + let p2 = args.get_kw_arg("p2")?; + let p3 = args.get_kw_arg("p3")?; + let sketch_surface_or_group = args.get_unlabeled_kw_arg("sketch_surface_or_group")?; + let tag = args.get_kw_arg_opt("tag"); + + let sketch = inner_circle_three_point(p1, p2, p3, sketch_surface_or_group, tag, exec_state, args).await?; + Ok(KclValue::Sketch { + value: Box::new(sketch), + }) +} + +/// Construct a circle derived from 3 points. +/// +/// ```no_run +/// exampleSketch = startSketchOn("XY") +/// |> circleThreePoint(p1 = [10,10], p2 = [20,8], p3 = [15,5]) +/// +/// example = extrude(5, exampleSketch) +/// ``` +#[stdlib { + name = "circleThreePoint", + keywords = true, + unlabeled_first = true, + arg_docs = { + p1 = "1st point to derive the circle.", + p2 = "2nd point to derive the circle.", + p3 = "3rd point to derive the circle.", + sketch_surface_or_group = "Plane or surface to sketch on.", + tag = "Identifier for the circle to reference elsewhere.", + } +}] +async fn inner_circle_three_point( + p1: [f64; 2], + p2: [f64; 2], + p3: [f64; 2], + sketch_surface_or_group: SketchOrSurface, + tag: Option, + exec_state: &mut ExecState, + args: Args, +) -> Result { + let center = calculate_circle_center(p1, p2, p3); + inner_circle( + CircleData { + center, + // It can be the distance to any of the 3 points - they all lay on the circumference. + radius: distance(center.into(), p2.into()), + }, + sketch_surface_or_group, + tag, + exec_state, + args, + ) + .await +} + /// Type of the polygon #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema, Default)] #[ts(export)] diff --git a/src/wasm-lib/kcl/src/std/sketch.rs b/src/wasm-lib/kcl/src/std/sketch.rs index 6eb82861a..d6b6986dc 100644 --- a/src/wasm-lib/kcl/src/std/sketch.rs +++ b/src/wasm-lib/kcl/src/std/sketch.rs @@ -21,8 +21,8 @@ use crate::{ parsing::ast::types::TagNode, std::{ utils::{ - arc_angles, arc_center_and_end, get_tangential_arc_to_info, get_x_component, get_y_component, - intersection_with_parallel_line, TangentialArcInfoInput, + arc_angles, arc_center_and_end, calculate_circle_center, get_tangential_arc_to_info, get_x_component, + get_y_component, intersection_with_parallel_line, TangentialArcInfoInput, }, Args, }, @@ -939,13 +939,13 @@ pub enum PlaneData { /// Origin of the plane. origin: Box, /// What should the plane’s X axis be? - #[serde(rename = "xAxis", alias = "x_axis")] + #[serde(rename = "xAxis")] x_axis: Box, /// What should the plane’s Y axis be? - #[serde(rename = "yAxis", alias = "y_axis")] + #[serde(rename = "yAxis")] y_axis: Box, /// The z-axis (normal). - #[serde(rename = "zAxis", alias = "z_axis")] + #[serde(rename = "zAxis")] z_axis: Box, }, } @@ -1285,7 +1285,7 @@ pub(crate) async fn inner_start_profile_at( let id = exec_state.next_uuid(); let path_id = exec_state.next_uuid(); - args.batch_modeling_cmd(path_id, ModelingCmd::from(mcmd::StartPath {})) + args.batch_modeling_cmd(path_id, ModelingCmd::from(mcmd::StartPath::default())) .await?; args.batch_modeling_cmd( id, @@ -1458,7 +1458,7 @@ pub(crate) async fn inner_close( // We were on a plane, disable the sketch mode. args.batch_modeling_cmd( exec_state.next_uuid(), - ModelingCmd::SketchModeDisable(mcmd::SketchModeDisable {}), + ModelingCmd::SketchModeDisable(mcmd::SketchModeDisable::default()), ) .await?; } @@ -1493,11 +1493,11 @@ pub enum ArcData { /// Angles and radius with an optional tag. AnglesAndRadius { /// The start angle. - #[serde(rename = "angleStart", alias = "angle_start")] + #[serde(rename = "angleStart")] #[schemars(range(min = -360.0, max = 360.0))] angle_start: f64, /// The end angle. - #[serde(rename = "angleEnd", alias = "angle_end")] + #[serde(rename = "angleEnd")] #[schemars(range(min = -360.0, max = 360.0))] angle_end: f64, /// The radius. @@ -2066,42 +2066,6 @@ async fn inner_tangential_arc_to_relative( Ok(new_sketch) } -// Calculate the center of 3 points -// To calculate the center of the 3 point circle 2 perpendicular lines are created -// These perpendicular lines will intersect at the center of the circle. -fn calculate_circle_center(p1: [f64; 2], p2: [f64; 2], p3: [f64; 2]) -> [f64; 2] { - // y2 - y1 - let y_2_1 = p2[1] - p1[1]; - // y3 - y2 - let y_3_2 = p3[1] - p2[1]; - // x2 - x1 - let x_2_1 = p2[0] - p1[0]; - // x3 - x2 - let x_3_2 = p3[0] - p2[0]; - - // Slope of two perpendicular lines - let slope_a = y_2_1 / x_2_1; - let slope_b = y_3_2 / x_3_2; - - // Values for line intersection - // y1 - y3 - let y_1_3 = p1[1] - p3[1]; - // x1 + x2 - let x_1_2 = p1[0] + p2[0]; - // x2 + x3 - let x_2_3 = p2[0] + p3[0]; - // y1 + y2 - let y_1_2 = p1[1] + p2[1]; - - // Solve for the intersection of these two lines - let numerator = (slope_a * slope_b * y_1_3) + (slope_b * x_1_2) - (slope_a * x_2_3); - let x = numerator / (2.0 * (slope_b - slope_a)); - - let y = ((-1.0 / slope_a) * (x - (x_1_2 / 2.0))) + (y_1_2 / 2.0); - - [x, y] -} - /// Data to draw a bezier curve. #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] #[ts(export)] @@ -2279,10 +2243,7 @@ mod tests { use pretty_assertions::assert_eq; - use crate::{ - execution::TagIdentifier, - std::sketch::{calculate_circle_center, PlaneData}, - }; + use crate::{execution::TagIdentifier, std::sketch::PlaneData, std::utils::calculate_circle_center}; #[test] fn test_deserialize_plane_data() { diff --git a/src/wasm-lib/kcl/src/std/sweep.rs b/src/wasm-lib/kcl/src/std/sweep.rs index 02566e2ca..18e295a24 100644 --- a/src/wasm-lib/kcl/src/std/sweep.rs +++ b/src/wasm-lib/kcl/src/std/sweep.rs @@ -9,16 +9,25 @@ use serde::{Deserialize, Serialize}; use crate::{ errors::KclError, - execution::{ExecState, KclValue, Sketch, Solid}, + execution::{ExecState, Helix, KclValue, Sketch, Solid}, std::{extrude::do_post_extrude, fillet::default_tolerance, Args}, }; +/// A path to sweep along. +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] +#[ts(export)] +#[serde(untagged)] +pub enum SweepPath { + Sketch(Sketch), + Helix(Box), +} + /// Data for a sweep. #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] #[ts(export)] pub struct SweepData { /// The path to sweep along. - pub path: Sketch, + pub path: SweepPath, /// If true, the sweep will be broken up into sub-sweeps (extrusions, revolves, sweeps) based on the trajectory path components. pub sectional: Option, /// Tolerance for the sweep operation. @@ -77,6 +86,26 @@ pub async fn sweep(exec_state: &mut ExecState, args: Args) -> Result circle({ center = [0, 0], radius = 1 }, %) +/// //|> sweep({ path = helixPath }, %) +/// ``` #[stdlib { name = "sweep", feature_tree_operation = true, @@ -92,7 +121,10 @@ async fn inner_sweep( id, ModelingCmd::from(mcmd::Sweep { target: sketch.id.into(), - trajectory: data.path.id.into(), + trajectory: match data.path { + SweepPath::Sketch(sketch) => sketch.id.into(), + SweepPath::Helix(helix) => helix.value.into(), + }, sectional: data.sectional.unwrap_or(false), tolerance: LengthUnit(data.tolerance.unwrap_or(default_tolerance(&args.ctx.settings.units))), }), diff --git a/src/wasm-lib/kcl/src/std/utils.rs b/src/wasm-lib/kcl/src/std/utils.rs index bbcd53fd3..af3dfd93e 100644 --- a/src/wasm-lib/kcl/src/std/utils.rs +++ b/src/wasm-lib/kcl/src/std/utils.rs @@ -8,6 +8,11 @@ use crate::{ source_range::SourceRange, }; +/// Get the distance between two points. +pub fn distance(a: Point2d, b: Point2d) -> f64 { + ((b.x - a.x).powi(2) + (b.y - a.y).powi(2)).sqrt() +} + /// Get the angle between these points pub fn between(a: Point2d, b: Point2d) -> Angle { let x = b.x - a.x; @@ -229,6 +234,42 @@ pub fn is_on_circumference(center: Point2d, point: Point2d, radius: f64) -> bool (distance_squared - radius.powi(2)).abs() < 1e-9 } +// Calculate the center of 3 points +// To calculate the center of the 3 point circle 2 perpendicular lines are created +// These perpendicular lines will intersect at the center of the circle. +pub fn calculate_circle_center(p1: [f64; 2], p2: [f64; 2], p3: [f64; 2]) -> [f64; 2] { + // y2 - y1 + let y_2_1 = p2[1] - p1[1]; + // y3 - y2 + let y_3_2 = p3[1] - p2[1]; + // x2 - x1 + let x_2_1 = p2[0] - p1[0]; + // x3 - x2 + let x_3_2 = p3[0] - p2[0]; + + // Slope of two perpendicular lines + let slope_a = y_2_1 / x_2_1; + let slope_b = y_3_2 / x_3_2; + + // Values for line intersection + // y1 - y3 + let y_1_3 = p1[1] - p3[1]; + // x1 + x2 + let x_1_2 = p1[0] + p2[0]; + // x2 + x3 + let x_2_3 = p2[0] + p3[0]; + // y1 + y2 + let y_1_2 = p1[1] + p2[1]; + + // Solve for the intersection of these two lines + let numerator = (slope_a * slope_b * y_1_3) + (slope_b * x_1_2) - (slope_a * x_2_3); + let x = numerator / (2.0 * (slope_b - slope_a)); + + let y = ((-1.0 / slope_a) * (x - (x_1_2 / 2.0))) + (y_1_2 / 2.0); + + [x, y] +} + #[cfg(test)] mod tests { // Here you can bring your functions into scope diff --git a/src/wasm-lib/kcl/src/test_server.rs b/src/wasm-lib/kcl/src/test_server.rs index 5e00ed66d..4bfe5d516 100644 --- a/src/wasm-lib/kcl/src/test_server.rs +++ b/src/wasm-lib/kcl/src/test_server.rs @@ -4,9 +4,9 @@ use std::path::PathBuf; use crate::{ errors::ExecErrorWithState, - execution::{new_zoo_client, ExecutorContext, ExecutorSettings, Operation, ProgramMemory}, + execution::{new_zoo_client, ArtifactCommand, ExecutorContext, ExecutorSettings, Operation, ProgramMemory}, settings::types::UnitLength, - ConnectionError, ExecError, Program, + ConnectionError, ExecError, KclErrorWithOutputs, Program, }; #[derive(serde::Deserialize, serde::Serialize)] @@ -24,7 +24,7 @@ pub async fn execute_and_snapshot( project_directory: Option, ) -> Result { let ctx = new_context(units, true, project_directory).await?; - let program = Program::parse_no_errs(code)?; + let program = Program::parse_no_errs(code).map_err(KclErrorWithOutputs::no_outputs)?; do_execute_and_snapshot(&ctx, program) .await .map(|(_state, snap)| snap) @@ -37,11 +37,16 @@ pub async fn execute_and_snapshot_ast( ast: Program, units: UnitLength, project_directory: Option, -) -> Result<(ProgramMemory, Vec, image::DynamicImage), ExecErrorWithState> { +) -> Result<(ProgramMemory, Vec, Vec, image::DynamicImage), ExecErrorWithState> { let ctx = new_context(units, true, project_directory).await?; - do_execute_and_snapshot(&ctx, ast) - .await - .map(|(state, snap)| (state.mod_local.memory, state.mod_local.operations, snap)) + do_execute_and_snapshot(&ctx, ast).await.map(|(state, snap)| { + ( + state.mod_local.memory, + state.mod_local.operations, + state.global.artifact_commands, + snap, + ) + }) } pub async fn execute_and_snapshot_no_auth( @@ -50,7 +55,7 @@ pub async fn execute_and_snapshot_no_auth( project_directory: Option, ) -> Result { let ctx = new_context(units, false, project_directory).await?; - let program = Program::parse_no_errs(code)?; + let program = Program::parse_no_errs(code).map_err(KclErrorWithOutputs::no_outputs)?; do_execute_and_snapshot(&ctx, program) .await .map(|(_state, snap)| snap) diff --git a/src/wasm-lib/kcl/tests/add_lots/artifact_commands.snap b/src/wasm-lib/kcl/tests/add_lots/artifact_commands.snap new file mode 100644 index 000000000..64aca18ae --- /dev/null +++ b/src/wasm-lib/kcl/tests/add_lots/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands add_lots.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/angled_line/artifact_commands.snap b/src/wasm-lib/kcl/tests/angled_line/artifact_commands.snap new file mode 100644 index 000000000..6c39fdb17 --- /dev/null +++ b/src/wasm-lib/kcl/tests/angled_line/artifact_commands.snap @@ -0,0 +1,728 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands angled_line.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10, + 29, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 67, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 67, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 67, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 4.83, + "y": 12.56, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 73, + 94, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.1, + "y": 2.48, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 100, + 130, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.15, + "y": -9.85, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 136, + 159, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -15.17, + "y": -4.1, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 165, + 202, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.7618, + "y": -11.7631, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 208, + 232, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -13.02, + "y": 10.03, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 238, + 246, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 238, + 246, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 4.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 252, + 265, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/argument_error/artifact_commands.snap b/src/wasm-lib/kcl/tests/argument_error/artifact_commands.snap new file mode 100644 index 000000000..da3c09167 --- /dev/null +++ b/src/wasm-lib/kcl/tests/argument_error/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands argument_error.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/array_elem_pop/artifact_commands.snap b/src/wasm-lib/kcl/tests/array_elem_pop/artifact_commands.snap new file mode 100644 index 000000000..3b5d372c3 --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_pop/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands array_elem_pop.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/array_elem_pop/ast.snap b/src/wasm-lib/kcl/tests/array_elem_pop/ast.snap new file mode 100644 index 000000000..183e2dd50 --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_pop/ast.snap @@ -0,0 +1,377 @@ +--- +source: kcl/src/simulation_tests.rs +description: Result of parsing array_elem_pop.kcl +--- +{ + "Ok": { + "body": [ + { + "declaration": { + "end": 15, + "id": { + "end": 3, + "name": "arr", + "start": 0, + "type": "Identifier" + }, + "init": { + "elements": [ + { + "end": 8, + "raw": "1", + "start": 7, + "type": "Literal", + "type": "Literal", + "value": 1.0 + }, + { + "end": 11, + "raw": "2", + "start": 10, + "type": "Literal", + "type": "Literal", + "value": 2.0 + }, + { + "end": 14, + "raw": "3", + "start": 13, + "type": "Literal", + "type": "Literal", + "value": 3.0 + } + ], + "end": 15, + "start": 6, + "type": "ArrayExpression", + "type": "ArrayExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 15, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "declaration": { + "end": 35, + "id": { + "end": 24, + "name": "new_arr1", + "start": 16, + "type": "Identifier" + }, + "init": { + "arguments": [ + { + "end": 34, + "name": "arr", + "start": 31, + "type": "Identifier", + "type": "Identifier" + } + ], + "callee": { + "end": 30, + "name": "pop", + "start": 27, + "type": "Identifier" + }, + "end": 35, + "start": 27, + "type": "CallExpression", + "type": "CallExpression" + }, + "start": 16, + "type": "VariableDeclarator" + }, + "end": 35, + "kind": "const", + "start": 16, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "declaration": { + "end": 60, + "id": { + "end": 44, + "name": "new_arr2", + "start": 36, + "type": "Identifier" + }, + "init": { + "arguments": [ + { + "end": 59, + "name": "new_arr1", + "start": 51, + "type": "Identifier", + "type": "Identifier" + } + ], + "callee": { + "end": 50, + "name": "pop", + "start": 47, + "type": "Identifier" + }, + "end": 60, + "start": 47, + "type": "CallExpression", + "type": "CallExpression" + }, + "start": 36, + "type": "VariableDeclarator" + }, + "end": 60, + "kind": "const", + "start": 36, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "declaration": { + "end": 85, + "id": { + "end": 69, + "name": "new_arr3", + "start": 61, + "type": "Identifier" + }, + "init": { + "arguments": [ + { + "end": 84, + "name": "new_arr2", + "start": 76, + "type": "Identifier", + "type": "Identifier" + } + ], + "callee": { + "end": 75, + "name": "pop", + "start": 72, + "type": "Identifier" + }, + "end": 85, + "start": 72, + "type": "CallExpression", + "type": "CallExpression" + }, + "start": 61, + "type": "VariableDeclarator" + }, + "end": 85, + "kind": "const", + "start": 61, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "end": 159, + "expression": { + "arguments": [ + { + "computed": false, + "end": 109, + "object": { + "end": 106, + "name": "new_arr1", + "start": 98, + "type": "Identifier", + "type": "Identifier" + }, + "property": { + "end": 108, + "raw": "0", + "start": 107, + "type": "Literal", + "type": "Literal", + "value": 0.0 + }, + "start": 98, + "type": "MemberExpression", + "type": "MemberExpression" + }, + { + "end": 112, + "raw": "1", + "start": 111, + "type": "Literal", + "type": "Literal", + "value": 1.0 + }, + { + "end": 121, + "raw": "0.00001", + "start": 114, + "type": "Literal", + "type": "Literal", + "value": 0.00001 + }, + { + "end": 158, + "raw": "\"element 0 should not have changed\"", + "start": 123, + "type": "Literal", + "type": "Literal", + "value": "element 0 should not have changed" + } + ], + "callee": { + "end": 97, + "name": "assertEqual", + "start": 86, + "type": "Identifier" + }, + "end": 159, + "start": 86, + "type": "CallExpression", + "type": "CallExpression" + }, + "start": 86, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + }, + { + "end": 233, + "expression": { + "arguments": [ + { + "computed": false, + "end": 183, + "object": { + "end": 180, + "name": "new_arr1", + "start": 172, + "type": "Identifier", + "type": "Identifier" + }, + "property": { + "end": 182, + "raw": "1", + "start": 181, + "type": "Literal", + "type": "Literal", + "value": 1.0 + }, + "start": 172, + "type": "MemberExpression", + "type": "MemberExpression" + }, + { + "end": 186, + "raw": "2", + "start": 185, + "type": "Literal", + "type": "Literal", + "value": 2.0 + }, + { + "end": 195, + "raw": "0.00001", + "start": 188, + "type": "Literal", + "type": "Literal", + "value": 0.00001 + }, + { + "end": 232, + "raw": "\"element 1 should not have changed\"", + "start": 197, + "type": "Literal", + "type": "Literal", + "value": "element 1 should not have changed" + } + ], + "callee": { + "end": 171, + "name": "assertEqual", + "start": 160, + "type": "Identifier" + }, + "end": 233, + "start": 160, + "type": "CallExpression", + "type": "CallExpression" + }, + "start": 160, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + }, + { + "end": 307, + "expression": { + "arguments": [ + { + "computed": false, + "end": 257, + "object": { + "end": 254, + "name": "new_arr2", + "start": 246, + "type": "Identifier", + "type": "Identifier" + }, + "property": { + "end": 256, + "raw": "0", + "start": 255, + "type": "Literal", + "type": "Literal", + "value": 0.0 + }, + "start": 246, + "type": "MemberExpression", + "type": "MemberExpression" + }, + { + "end": 260, + "raw": "1", + "start": 259, + "type": "Literal", + "type": "Literal", + "value": 1.0 + }, + { + "end": 269, + "raw": "0.00001", + "start": 262, + "type": "Literal", + "type": "Literal", + "value": 0.00001 + }, + { + "end": 306, + "raw": "\"element 0 should not have changed\"", + "start": 271, + "type": "Literal", + "type": "Literal", + "value": "element 0 should not have changed" + } + ], + "callee": { + "end": 245, + "name": "assertEqual", + "start": 234, + "type": "Identifier" + }, + "end": 307, + "start": 234, + "type": "CallExpression", + "type": "CallExpression" + }, + "start": 234, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + } + ], + "end": 308, + "start": 0 + } +} diff --git a/src/wasm-lib/kcl/tests/array_elem_pop/input.kcl b/src/wasm-lib/kcl/tests/array_elem_pop/input.kcl new file mode 100644 index 000000000..184a6e6e9 --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_pop/input.kcl @@ -0,0 +1,7 @@ +arr = [1, 2, 3] +new_arr1 = pop(arr) +new_arr2 = pop(new_arr1) +new_arr3 = pop(new_arr2) +assertEqual(new_arr1[0], 1, 0.00001, "element 0 should not have changed") +assertEqual(new_arr1[1], 2, 0.00001, "element 1 should not have changed") +assertEqual(new_arr2[0], 1, 0.00001, "element 0 should not have changed") diff --git a/src/wasm-lib/kcl/tests/array_elem_pop/ops.snap b/src/wasm-lib/kcl/tests/array_elem_pop/ops.snap new file mode 100644 index 000000000..0642275d0 --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_pop/ops.snap @@ -0,0 +1,5 @@ +--- +source: kcl/src/simulation_tests.rs +description: Operations executed array_elem_pop.kcl +--- +[] diff --git a/src/wasm-lib/kcl/tests/array_elem_pop/program_memory.snap b/src/wasm-lib/kcl/tests/array_elem_pop/program_memory.snap new file mode 100644 index 000000000..1f3f62079 --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_pop/program_memory.snap @@ -0,0 +1,168 @@ +--- +source: kcl/src/simulation_tests.rs +description: Program memory after executing array_elem_pop.kcl +--- +{ + "environments": [ + { + "bindings": { + "HALF_TURN": { + "type": "Number", + "value": 180.0, + "__meta": [] + }, + "QUARTER_TURN": { + "type": "Number", + "value": 90.0, + "__meta": [] + }, + "THREE_QUARTER_TURN": { + "type": "Number", + "value": 270.0, + "__meta": [] + }, + "ZERO": { + "type": "Number", + "value": 0.0, + "__meta": [] + }, + "arr": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 1.0, + "__meta": [ + { + "sourceRange": [ + 7, + 8, + 0 + ] + } + ] + }, + { + "type": "Number", + "value": 2.0, + "__meta": [ + { + "sourceRange": [ + 10, + 11, + 0 + ] + } + ] + }, + { + "type": "Number", + "value": 3.0, + "__meta": [ + { + "sourceRange": [ + 13, + 14, + 0 + ] + } + ] + } + ], + "__meta": [ + { + "sourceRange": [ + 6, + 15, + 0 + ] + } + ] + }, + "new_arr1": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 1.0, + "__meta": [ + { + "sourceRange": [ + 7, + 8, + 0 + ] + } + ] + }, + { + "type": "Number", + "value": 2.0, + "__meta": [ + { + "sourceRange": [ + 10, + 11, + 0 + ] + } + ] + } + ], + "__meta": [ + { + "sourceRange": [ + 27, + 35, + 0 + ] + } + ] + }, + "new_arr2": { + "type": "Array", + "value": [ + { + "type": "Number", + "value": 1.0, + "__meta": [ + { + "sourceRange": [ + 7, + 8, + 0 + ] + } + ] + } + ], + "__meta": [ + { + "sourceRange": [ + 47, + 60, + 0 + ] + } + ] + }, + "new_arr3": { + "type": "Array", + "value": [], + "__meta": [ + { + "sourceRange": [ + 72, + 85, + 0 + ] + } + ] + } + }, + "parent": null + } + ], + "currentEnv": 0, + "return": null +} diff --git a/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/artifact_commands.snap b/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/artifact_commands.snap new file mode 100644 index 000000000..51981333b --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands array_elem_pop_empty_fail.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/ast.snap b/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/ast.snap new file mode 100644 index 000000000..37a0e2a9d --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/ast.snap @@ -0,0 +1,76 @@ +--- +source: kcl/src/simulation_tests.rs +description: Result of parsing array_elem_pop_empty_fail.kcl +--- +{ + "Ok": { + "body": [ + { + "declaration": { + "end": 8, + "id": { + "end": 3, + "name": "arr", + "start": 0, + "type": "Identifier" + }, + "init": { + "elements": [], + "end": 8, + "start": 6, + "type": "ArrayExpression", + "type": "ArrayExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 8, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "declaration": { + "end": 24, + "id": { + "end": 13, + "name": "fail", + "start": 9, + "type": "Identifier" + }, + "init": { + "arguments": [ + { + "end": 23, + "name": "arr", + "start": 20, + "type": "Identifier", + "type": "Identifier" + } + ], + "callee": { + "end": 19, + "name": "pop", + "start": 16, + "type": "Identifier" + }, + "end": 24, + "start": 16, + "type": "CallExpression", + "type": "CallExpression" + }, + "start": 9, + "type": "VariableDeclarator" + }, + "end": 24, + "kind": "const", + "start": 9, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + } + ], + "end": 25, + "start": 0 + } +} diff --git a/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/execution_error.snap b/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/execution_error.snap new file mode 100644 index 000000000..57faa0fed --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/execution_error.snap @@ -0,0 +1,12 @@ +--- +source: kcl/src/simulation_tests.rs +description: Error from executing array_elem_pop_empty_fail.kcl +--- +KCL Semantic error + + × semantic: Cannot pop from an empty array + ╭─[2:8] + 1 │ arr = [] + 2 │ fail = pop(arr) + · ──────── + ╰──── diff --git a/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/input.kcl b/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/input.kcl new file mode 100644 index 000000000..8b1556afd --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/input.kcl @@ -0,0 +1,2 @@ +arr = [] +fail = pop(arr) diff --git a/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/ops.snap b/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/ops.snap new file mode 100644 index 000000000..1245f6771 --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_pop_empty_fail/ops.snap @@ -0,0 +1,5 @@ +--- +source: kcl/src/simulation_tests.rs +description: Operations executed array_elem_pop_empty_fail.kcl +--- +[] diff --git a/src/wasm-lib/kcl/tests/array_elem_pop_fail/artifact_commands.snap b/src/wasm-lib/kcl/tests/array_elem_pop_fail/artifact_commands.snap new file mode 100644 index 000000000..711f80dbf --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_pop_fail/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands array_elem_pop_fail.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/array_elem_pop_fail/ast.snap b/src/wasm-lib/kcl/tests/array_elem_pop_fail/ast.snap new file mode 100644 index 000000000..715dadef5 --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_pop_fail/ast.snap @@ -0,0 +1,141 @@ +--- +source: kcl/src/simulation_tests.rs +description: Result of parsing array_elem_pop_fail.kcl +--- +{ + "Ok": { + "body": [ + { + "declaration": { + "end": 15, + "id": { + "end": 3, + "name": "arr", + "start": 0, + "type": "Identifier" + }, + "init": { + "elements": [ + { + "end": 8, + "raw": "1", + "start": 7, + "type": "Literal", + "type": "Literal", + "value": 1.0 + }, + { + "end": 11, + "raw": "2", + "start": 10, + "type": "Literal", + "type": "Literal", + "value": 2.0 + }, + { + "end": 14, + "raw": "3", + "start": 13, + "type": "Literal", + "type": "Literal", + "value": 3.0 + } + ], + "end": 15, + "start": 6, + "type": "ArrayExpression", + "type": "ArrayExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 15, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "declaration": { + "end": 36, + "id": { + "end": 25, + "name": "pushedArr", + "start": 16, + "type": "Identifier" + }, + "init": { + "arguments": [ + { + "end": 35, + "name": "arr", + "start": 32, + "type": "Identifier", + "type": "Identifier" + } + ], + "callee": { + "end": 31, + "name": "pop", + "start": 28, + "type": "Identifier" + }, + "end": 36, + "start": 28, + "type": "CallExpression", + "type": "CallExpression" + }, + "start": 16, + "type": "VariableDeclarator" + }, + "end": 36, + "kind": "const", + "start": 16, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "declaration": { + "end": 56, + "id": { + "end": 41, + "name": "fail", + "start": 37, + "type": "Identifier" + }, + "init": { + "computed": false, + "end": 56, + "object": { + "end": 53, + "name": "pushedArr", + "start": 44, + "type": "Identifier", + "type": "Identifier" + }, + "property": { + "end": 55, + "raw": "2", + "start": 54, + "type": "Literal", + "type": "Literal", + "value": 2.0 + }, + "start": 44, + "type": "MemberExpression", + "type": "MemberExpression" + }, + "start": 37, + "type": "VariableDeclarator" + }, + "end": 56, + "kind": "const", + "start": 37, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + } + ], + "end": 57, + "start": 0 + } +} diff --git a/src/wasm-lib/kcl/tests/array_elem_pop_fail/execution_error.snap b/src/wasm-lib/kcl/tests/array_elem_pop_fail/execution_error.snap new file mode 100644 index 000000000..03aaef211 --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_pop_fail/execution_error.snap @@ -0,0 +1,12 @@ +--- +source: kcl/src/simulation_tests.rs +description: Error from executing array_elem_pop_fail.kcl +--- +KCL UndefinedValue error + + × undefined value: The array doesn't have any item at index 2 + ╭─[3:8] + 2 │ pushedArr = pop(arr) + 3 │ fail = pushedArr[2] + · ──────────── + ╰──── diff --git a/src/wasm-lib/kcl/tests/array_elem_pop_fail/input.kcl b/src/wasm-lib/kcl/tests/array_elem_pop_fail/input.kcl new file mode 100644 index 000000000..3f6ad278e --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_pop_fail/input.kcl @@ -0,0 +1,3 @@ +arr = [1, 2, 3] +pushedArr = pop(arr) +fail = pushedArr[2] diff --git a/src/wasm-lib/kcl/tests/array_elem_pop_fail/ops.snap b/src/wasm-lib/kcl/tests/array_elem_pop_fail/ops.snap new file mode 100644 index 000000000..ba03da3b5 --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_pop_fail/ops.snap @@ -0,0 +1,5 @@ +--- +source: kcl/src/simulation_tests.rs +description: Operations executed array_elem_pop_fail.kcl +--- +[] diff --git a/src/wasm-lib/kcl/tests/array_elem_push/artifact_commands.snap b/src/wasm-lib/kcl/tests/array_elem_push/artifact_commands.snap new file mode 100644 index 000000000..90a193d82 --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_push/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands array_elem_push.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/array_elem_push_fail/artifact_commands.snap b/src/wasm-lib/kcl/tests/array_elem_push_fail/artifact_commands.snap new file mode 100644 index 000000000..25d582ff3 --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_elem_push_fail/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands array_elem_push_fail.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/array_index_oob/artifact_commands.snap b/src/wasm-lib/kcl/tests/array_index_oob/artifact_commands.snap new file mode 100644 index 000000000..3e22050ad --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_index_oob/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands array_index_oob.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/array_range_expr/artifact_commands.snap b/src/wasm-lib/kcl/tests/array_range_expr/artifact_commands.snap new file mode 100644 index 000000000..28e721116 --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_range_expr/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands array_range_expr.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/array_range_negative_expr/artifact_commands.snap b/src/wasm-lib/kcl/tests/array_range_negative_expr/artifact_commands.snap new file mode 100644 index 000000000..95bb8b5b3 --- /dev/null +++ b/src/wasm-lib/kcl/tests/array_range_negative_expr/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands array_range_negative_expr.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/basic_fillet_cube_close_opposite/artifact_commands.snap b/src/wasm-lib/kcl/tests/basic_fillet_cube_close_opposite/artifact_commands.snap new file mode 100644 index 000000000..c9443574d --- /dev/null +++ b/src/wasm-lib/kcl/tests/basic_fillet_cube_close_opposite/artifact_commands.snap @@ -0,0 +1,678 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands basic_fillet_cube_close_opposite.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10, + 29, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66, + 90, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 96, + 112, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 118, + 144, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 167, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 167, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 173, + 187, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 173, + 187, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 10.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 173, + 187, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 173, + 187, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 173, + 187, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 173, + 187, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 173, + 187, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 173, + 187, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 173, + 187, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 173, + 187, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 173, + 187, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 173, + 187, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 173, + 187, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 244, + 267, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 193, + 279, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 2.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 193, + 279, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 2.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/basic_fillet_cube_end/artifact_commands.snap b/src/wasm-lib/kcl/tests/basic_fillet_cube_end/artifact_commands.snap new file mode 100644 index 000000000..6776c0c4d --- /dev/null +++ b/src/wasm-lib/kcl/tests/basic_fillet_cube_end/artifact_commands.snap @@ -0,0 +1,678 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands basic_fillet_cube_end.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10, + 29, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66, + 90, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 96, + 112, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 118, + 144, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 158, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 158, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 10.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 234, + 256, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 184, + 268, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 2.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 184, + 268, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 2.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/basic_fillet_cube_next_adjacent/artifact_commands.snap b/src/wasm-lib/kcl/tests/basic_fillet_cube_next_adjacent/artifact_commands.snap new file mode 100644 index 000000000..588c87282 --- /dev/null +++ b/src/wasm-lib/kcl/tests/basic_fillet_cube_next_adjacent/artifact_commands.snap @@ -0,0 +1,661 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands basic_fillet_cube_next_adjacent.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10, + 29, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66, + 90, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 96, + 121, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 127, + 153, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 159, + 176, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 159, + 176, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 10.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 245, + 272, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 202, + 284, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 2.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/basic_fillet_cube_previous_adjacent/artifact_commands.snap b/src/wasm-lib/kcl/tests/basic_fillet_cube_previous_adjacent/artifact_commands.snap new file mode 100644 index 000000000..02c7004e2 --- /dev/null +++ b/src/wasm-lib/kcl/tests/basic_fillet_cube_previous_adjacent/artifact_commands.snap @@ -0,0 +1,661 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands basic_fillet_cube_previous_adjacent.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10, + 29, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66, + 90, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 96, + 121, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 127, + 153, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 159, + 176, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 159, + 176, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 10.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 196, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 245, + 276, + 0 + ], + "command": { + "type": "solid3d_get_prev_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 202, + 288, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 2.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/basic_fillet_cube_start/artifact_commands.snap b/src/wasm-lib/kcl/tests/basic_fillet_cube_start/artifact_commands.snap new file mode 100644 index 000000000..897e30a49 --- /dev/null +++ b/src/wasm-lib/kcl/tests/basic_fillet_cube_start/artifact_commands.snap @@ -0,0 +1,664 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands basic_fillet_cube_start.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10, + 29, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66, + 90, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 96, + 112, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 118, + 144, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 158, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 158, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 10.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 164, + 178, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 184, + 233, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 2.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 184, + 233, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 2.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/big_number_angle_to_match_length_x/artifact_commands.snap b/src/wasm-lib/kcl/tests/big_number_angle_to_match_length_x/artifact_commands.snap new file mode 100644 index 000000000..22121ccf1 --- /dev/null +++ b/src/wasm-lib/kcl/tests/big_number_angle_to_match_length_x/artifact_commands.snap @@ -0,0 +1,581 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands big_number_angle_to_match_length_x.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10, + 29, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66, + 92, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.0, + "y": 3.82, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 98, + 154, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.0, + "y": 0.4152, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 160, + 168, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 160, + 168, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 10.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/big_number_angle_to_match_length_y/artifact_commands.snap b/src/wasm-lib/kcl/tests/big_number_angle_to_match_length_y/artifact_commands.snap new file mode 100644 index 000000000..a0d889976 --- /dev/null +++ b/src/wasm-lib/kcl/tests/big_number_angle_to_match_length_y/artifact_commands.snap @@ -0,0 +1,581 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands big_number_angle_to_match_length_y.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10, + 29, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66, + 92, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.0, + "y": 3.82, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 98, + 154, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.0, + "y": 3.3954, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 160, + 168, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 160, + 168, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 10.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 188, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/boolean_logical_and/artifact_commands.snap b/src/wasm-lib/kcl/tests/boolean_logical_and/artifact_commands.snap new file mode 100644 index 000000000..1d470367f --- /dev/null +++ b/src/wasm-lib/kcl/tests/boolean_logical_and/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands boolean_logical_and.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/boolean_logical_multiple/artifact_commands.snap b/src/wasm-lib/kcl/tests/boolean_logical_multiple/artifact_commands.snap new file mode 100644 index 000000000..e82049a3f --- /dev/null +++ b/src/wasm-lib/kcl/tests/boolean_logical_multiple/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands boolean_logical_multiple.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/boolean_logical_or/artifact_commands.snap b/src/wasm-lib/kcl/tests/boolean_logical_or/artifact_commands.snap new file mode 100644 index 000000000..7c27d0a6e --- /dev/null +++ b/src/wasm-lib/kcl/tests/boolean_logical_or/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands boolean_logical_or.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/circle_three_point/artifact_commands.snap b/src/wasm-lib/kcl/tests/circle_three_point/artifact_commands.snap new file mode 100644 index 000000000..115689a6b --- /dev/null +++ b/src/wasm-lib/kcl/tests/circle_three_point/artifact_commands.snap @@ -0,0 +1,501 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands circle_three_point.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12, + 31, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37, + 98, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37, + 98, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37, + 98, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 30.00594901040716, + "y": 19.749999999999996, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37, + 98, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 24.75, + "y": 19.75 + }, + "radius": 5.255949010407163, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37, + 98, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 109, + 131, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 109, + 131, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 10.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 109, + 131, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 109, + 131, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 109, + 131, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 109, + 131, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 109, + 131, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/circle_three_point/ast.snap b/src/wasm-lib/kcl/tests/circle_three_point/ast.snap new file mode 100644 index 000000000..f2f1fcdc4 --- /dev/null +++ b/src/wasm-lib/kcl/tests/circle_three_point/ast.snap @@ -0,0 +1,217 @@ +--- +source: kcl/src/simulation_tests.rs +assertion_line: 55 +description: Result of parsing circle_three_point.kcl +snapshot_kind: text +--- +{ + "Ok": { + "body": [ + { + "declaration": { + "end": 98, + "id": { + "end": 9, + "name": "sketch001", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": [ + { + "arguments": [ + { + "end": 30, + "raw": "'XY'", + "start": 26, + "type": "Literal", + "type": "Literal", + "value": "XY" + } + ], + "callee": { + "end": 25, + "name": "startSketchOn", + "start": 12, + "type": "Identifier" + }, + "end": 31, + "start": 12, + "type": "CallExpression", + "type": "CallExpression" + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "type": "Identifier", + "name": "p1" + }, + "arg": { + "elements": [ + { + "end": 62, + "raw": "25", + "start": 60, + "type": "Literal", + "type": "Literal", + "value": 25.0 + }, + { + "end": 66, + "raw": "25", + "start": 64, + "type": "Literal", + "type": "Literal", + "value": 25.0 + } + ], + "end": 67, + "start": 59, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "type": "Identifier", + "name": "p2" + }, + "arg": { + "elements": [ + { + "end": 77, + "raw": "30", + "start": 75, + "type": "Literal", + "type": "Literal", + "value": 30.0 + }, + { + "end": 81, + "raw": "20", + "start": 79, + "type": "Literal", + "type": "Literal", + "value": 20.0 + } + ], + "end": 82, + "start": 74, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "type": "Identifier", + "name": "p3" + }, + "arg": { + "elements": [ + { + "end": 92, + "raw": "27", + "start": 90, + "type": "Literal", + "type": "Literal", + "value": 27.0 + }, + { + "end": 96, + "raw": "15", + "start": 94, + "type": "Literal", + "type": "Literal", + "value": 15.0 + } + ], + "end": 97, + "start": 89, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "end": 53, + "name": "circleThreePoint", + "start": 37, + "type": "Identifier" + }, + "end": 98, + "start": 37, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], + "end": 98, + "start": 12, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 98, + "kind": "const", + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "declaration": { + "end": 131, + "id": { + "end": 106, + "name": "example", + "start": 99, + "type": "Identifier" + }, + "init": { + "arguments": [ + { + "end": 119, + "raw": "10", + "start": 117, + "type": "Literal", + "type": "Literal", + "value": 10.0 + }, + { + "end": 130, + "name": "sketch001", + "start": 121, + "type": "Identifier", + "type": "Identifier" + } + ], + "callee": { + "end": 116, + "name": "extrude", + "start": 109, + "type": "Identifier" + }, + "end": 131, + "start": 109, + "type": "CallExpression", + "type": "CallExpression" + }, + "start": 99, + "type": "VariableDeclarator" + }, + "end": 131, + "kind": "const", + "start": 99, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + } + ], + "end": 132, + "start": 0 + } +} diff --git a/src/wasm-lib/kcl/tests/circle_three_point/input.kcl b/src/wasm-lib/kcl/tests/circle_three_point/input.kcl new file mode 100644 index 000000000..75c37d03b --- /dev/null +++ b/src/wasm-lib/kcl/tests/circle_three_point/input.kcl @@ -0,0 +1,3 @@ +sketch001 = startSketchOn('XY') + |> circleThreePoint(p1 = [25, 25], p2 = [30, 20], p3 = [27, 15]) +example = extrude(10, sketch001) diff --git a/src/wasm-lib/kcl/tests/circle_three_point/ops.snap b/src/wasm-lib/kcl/tests/circle_three_point/ops.snap new file mode 100644 index 000000000..1ecea1ca8 --- /dev/null +++ b/src/wasm-lib/kcl/tests/circle_three_point/ops.snap @@ -0,0 +1,53 @@ +--- +source: kcl/src/simulation_tests.rs +assertion_line: 108 +description: Operations executed circle_three_point.kcl +snapshot_kind: text +--- +[ + { + "labeledArgs": { + "data": { + "sourceRange": [ + 26, + 30, + 0 + ] + } + }, + "name": "startSketchOn", + "sourceRange": [ + 12, + 31, + 0 + ], + "type": "StdLibCall", + "unlabeledArg": null + }, + { + "labeledArgs": { + "length": { + "sourceRange": [ + 117, + 119, + 0 + ] + }, + "sketch_set": { + "sourceRange": [ + 121, + 130, + 0 + ] + } + }, + "name": "extrude", + "sourceRange": [ + 109, + 131, + 0 + ], + "type": "StdLibCall", + "unlabeledArg": null + } +] diff --git a/src/wasm-lib/kcl/tests/circle_three_point/program_memory.snap b/src/wasm-lib/kcl/tests/circle_three_point/program_memory.snap new file mode 100644 index 000000000..11e6fcadb --- /dev/null +++ b/src/wasm-lib/kcl/tests/circle_three_point/program_memory.snap @@ -0,0 +1,242 @@ +--- +source: kcl/src/simulation_tests.rs +assertion_line: 99 +description: Program memory after executing circle_three_point.kcl +snapshot_kind: text +--- +{ + "environments": [ + { + "bindings": { + "HALF_TURN": { + "type": "Number", + "value": 180.0, + "__meta": [] + }, + "QUARTER_TURN": { + "type": "Number", + "value": 90.0, + "__meta": [] + }, + "THREE_QUARTER_TURN": { + "type": "Number", + "value": 270.0, + "__meta": [] + }, + "ZERO": { + "type": "Number", + "value": 0.0, + "__meta": [] + }, + "example": { + "type": "Solid", + "type": "Solid", + "id": "[uuid]", + "value": [ + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [ + 37, + 98, + 0 + ], + "tag": null, + "type": "extrudeArc" + } + ], + "sketch": { + "type": "Sketch", + "id": "[uuid]", + "paths": [ + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [ + 37, + 98, + 0 + ] + }, + "ccw": true, + "center": [ + 24.749999999999996, + 19.749999999999996 + ], + "from": [ + 30.0059, + 19.75 + ], + "radius": 5.255949010407163, + "tag": null, + "to": [ + 30.0059, + 19.75 + ], + "type": "Circle" + } + ], + "on": { + "type": "plane", + "id": "[uuid]", + "value": "XY", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "xAxis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "yAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "zAxis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "__meta": [] + }, + "start": { + "from": [ + 30.00594901040716, + 19.749999999999996 + ], + "to": [ + 30.00594901040716, + 19.749999999999996 + ], + "tag": null, + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [ + 37, + 98, + 0 + ] + } + }, + "__meta": [ + { + "sourceRange": [ + 37, + 98, + 0 + ] + } + ] + }, + "height": 10.0, + "startCapId": "[uuid]", + "endCapId": "[uuid]", + "__meta": [ + { + "sourceRange": [ + 37, + 98, + 0 + ] + } + ] + }, + "sketch001": { + "type": "Sketch", + "value": { + "type": "Sketch", + "id": "[uuid]", + "paths": [ + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [ + 37, + 98, + 0 + ] + }, + "ccw": true, + "center": [ + 24.749999999999996, + 19.749999999999996 + ], + "from": [ + 30.0059, + 19.75 + ], + "radius": 5.255949010407163, + "tag": null, + "to": [ + 30.0059, + 19.75 + ], + "type": "Circle" + } + ], + "on": { + "type": "plane", + "id": "[uuid]", + "value": "XY", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "xAxis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "yAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "zAxis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "__meta": [] + }, + "start": { + "from": [ + 30.00594901040716, + 19.749999999999996 + ], + "to": [ + 30.00594901040716, + 19.749999999999996 + ], + "tag": null, + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [ + 37, + 98, + 0 + ] + } + }, + "__meta": [ + { + "sourceRange": [ + 37, + 98, + 0 + ] + } + ] + } + } + }, + "parent": null + } + ], + "currentEnv": 0, + "return": null +} diff --git a/src/wasm-lib/kcl/tests/circle_three_point/rendered_model.png b/src/wasm-lib/kcl/tests/circle_three_point/rendered_model.png new file mode 100644 index 000000000..5a201e4fd Binary files /dev/null and b/src/wasm-lib/kcl/tests/circle_three_point/rendered_model.png differ diff --git a/src/wasm-lib/kcl/tests/circular_pattern3d_a_pattern/artifact_commands.snap b/src/wasm-lib/kcl/tests/circular_pattern3d_a_pattern/artifact_commands.snap new file mode 100644 index 000000000..aaf992f13 --- /dev/null +++ b/src/wasm-lib/kcl/tests/circular_pattern3d_a_pattern/artifact_commands.snap @@ -0,0 +1,994 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands circular_pattern3d_a_pattern.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 16, + 35, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41, + 66, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41, + 66, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41, + 66, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 72, + 87, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 2.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 93, + 108, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.0, + "y": 1.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 114, + 130, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -4.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 136, + 144, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 136, + 144, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 1.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 261, + 0 + ], + "command": { + "type": "entity_linear_pattern_transform", + "entity_id": "[uuid]", + "transform": [], + "transforms": [ + [ + { + "translate": { + "x": 6.0, + "y": 0.0, + "z": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 12.0, + "y": 0.0, + "z": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 18.0, + "y": 0.0, + "z": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 24.0, + "y": 0.0, + "z": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 30.0, + "y": 0.0, + "z": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 36.0, + "y": 0.0, + "z": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ] + ] + } + }, + { + "cmdId": "[uuid]", + "range": [ + 272, + 415, + 0 + ], + "command": { + "type": "entity_circular_pattern", + "entity_id": "[uuid]", + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "center": { + "x": -20.0, + "y": -20.0, + "z": -20.0 + }, + "num_repetitions": 40, + "arc_degrees": 360.0, + "rotate_duplicates": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 272, + 415, + 0 + ], + "command": { + "type": "entity_circular_pattern", + "entity_id": "[uuid]", + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "center": { + "x": -20.0, + "y": -20.0, + "z": -20.0 + }, + "num_repetitions": 40, + "arc_degrees": 360.0, + "rotate_duplicates": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 272, + 415, + 0 + ], + "command": { + "type": "entity_circular_pattern", + "entity_id": "[uuid]", + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "center": { + "x": -20.0, + "y": -20.0, + "z": -20.0 + }, + "num_repetitions": 40, + "arc_degrees": 360.0, + "rotate_duplicates": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 272, + 415, + 0 + ], + "command": { + "type": "entity_circular_pattern", + "entity_id": "[uuid]", + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "center": { + "x": -20.0, + "y": -20.0, + "z": -20.0 + }, + "num_repetitions": 40, + "arc_degrees": 360.0, + "rotate_duplicates": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 272, + 415, + 0 + ], + "command": { + "type": "entity_circular_pattern", + "entity_id": "[uuid]", + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "center": { + "x": -20.0, + "y": -20.0, + "z": -20.0 + }, + "num_repetitions": 40, + "arc_degrees": 360.0, + "rotate_duplicates": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 272, + 415, + 0 + ], + "command": { + "type": "entity_circular_pattern", + "entity_id": "[uuid]", + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "center": { + "x": -20.0, + "y": -20.0, + "z": -20.0 + }, + "num_repetitions": 40, + "arc_degrees": 360.0, + "rotate_duplicates": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 272, + 415, + 0 + ], + "command": { + "type": "entity_circular_pattern", + "entity_id": "[uuid]", + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "center": { + "x": -20.0, + "y": -20.0, + "z": -20.0 + }, + "num_repetitions": 40, + "arc_degrees": 360.0, + "rotate_duplicates": false + } + } +] diff --git a/src/wasm-lib/kcl/tests/comparisons/artifact_commands.snap b/src/wasm-lib/kcl/tests/comparisons/artifact_commands.snap new file mode 100644 index 000000000..939d84f78 --- /dev/null +++ b/src/wasm-lib/kcl/tests/comparisons/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands comparisons.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/comparisons_multiple/artifact_commands.snap b/src/wasm-lib/kcl/tests/comparisons_multiple/artifact_commands.snap new file mode 100644 index 000000000..34adcec4d --- /dev/null +++ b/src/wasm-lib/kcl/tests/comparisons_multiple/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands comparisons_multiple.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/computed_var/artifact_commands.snap b/src/wasm-lib/kcl/tests/computed_var/artifact_commands.snap new file mode 100644 index 000000000..354ebc147 --- /dev/null +++ b/src/wasm-lib/kcl/tests/computed_var/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands computed_var.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/cube/artifact_commands.snap b/src/wasm-lib/kcl/tests/cube/artifact_commands.snap new file mode 100644 index 000000000..e5fef238a --- /dev/null +++ b/src/wasm-lib/kcl/tests/cube/artifact_commands.snap @@ -0,0 +1,651 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands cube.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 177, + 194, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 177, + 194, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 177, + 194, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 177, + 194, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": -20.0, + "y": -20.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 202, + 215, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -20.0, + "y": 20.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 223, + 236, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 20.0, + "y": 20.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 244, + 257, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 20.0, + "y": -20.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 265, + 278, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -20.0, + "y": -20.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 286, + 294, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 286, + 294, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 40.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/double_map_fn/artifact_commands.snap b/src/wasm-lib/kcl/tests/double_map_fn/artifact_commands.snap new file mode 100644 index 000000000..2c10e4f06 --- /dev/null +++ b/src/wasm-lib/kcl/tests/double_map_fn/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands double_map_fn.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/fillet-and-shell/artifact_commands.snap b/src/wasm-lib/kcl/tests/fillet-and-shell/artifact_commands.snap new file mode 100644 index 000000000..5c16ea606 --- /dev/null +++ b/src/wasm-lib/kcl/tests/fillet-and-shell/artifact_commands.snap @@ -0,0 +1,2562 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands fillet-and-shell.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 373, + 461, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 373, + 461, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 373, + 461, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 373, + 461, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 10.799999999999999, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 467, + 549, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 22.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 555, + 637, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.0, + "y": 22.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 643, + 727, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.0, + "y": 10.8, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 733, + 741, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 733, + 741, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 750, + 769, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 775, + 800, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 775, + 800, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 775, + 800, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 806, + 839, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 38.0, + "y": 0.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 845, + 887, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 38.0, + "y": 73.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 893, + 927, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 73.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 933, + 949, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 933, + 949, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 955, + 977, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 955, + 977, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 8.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 955, + 977, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 955, + 977, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 955, + 977, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 955, + 977, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 955, + 977, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 955, + 977, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 955, + 977, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 955, + 977, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 955, + 977, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 955, + 977, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 955, + 977, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1036, + 1062, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1073, + 1099, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1110, + 1136, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1147, + 1173, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1233, + 1252, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1260, + 1285, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1260, + 1285, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1260, + 1285, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 10.0, + "y": 7.5, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 7.5, + "y": 7.5 + }, + "radius": 2.5, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 8.75, + "y": 7.5, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 7.5, + "y": 7.5 + }, + "radius": 1.25, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1345, + 1399, + 0 + ], + "command": { + "type": "solid2d_add_hole", + "object_id": "[uuid]", + "hole_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1345, + 1399, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 4.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1233, + 1252, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1260, + 1285, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1260, + 1285, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1260, + 1285, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 10.0, + "y": 65.5, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 7.5, + "y": 65.5 + }, + "radius": 2.5, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 8.75, + "y": 65.5, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 7.5, + "y": 65.5 + }, + "radius": 1.25, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1345, + 1399, + 0 + ], + "command": { + "type": "solid2d_add_hole", + "object_id": "[uuid]", + "hole_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1345, + 1399, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 4.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1233, + 1252, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1260, + 1285, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1260, + 1285, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1260, + 1285, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 33.0, + "y": 65.5, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 30.5, + "y": 65.5 + }, + "radius": 2.5, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 31.75, + "y": 65.5, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 30.5, + "y": 65.5 + }, + "radius": 1.25, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1345, + 1399, + 0 + ], + "command": { + "type": "solid2d_add_hole", + "object_id": "[uuid]", + "hole_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1345, + 1399, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 4.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1233, + 1252, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1260, + 1285, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1260, + 1285, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1260, + 1285, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 33.0, + "y": 7.5, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 30.5, + "y": 7.5 + }, + "radius": 2.5, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1293, + 1337, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 31.75, + "y": 7.5, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 30.5, + "y": 7.5 + }, + "radius": 1.25, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1350, + 1395, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1345, + 1399, + 0 + ], + "command": { + "type": "solid2d_add_hole", + "object_id": "[uuid]", + "hole_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1345, + 1399, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 4.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1407, + 1425, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 983, + 1193, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 1.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 983, + 1193, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 1.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 983, + 1193, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 1.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 983, + 1193, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 1.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1960, + 2023, + 0 + ], + "command": { + "type": "solid3d_shell_face", + "object_id": "[uuid]", + "face_ids": [ + "[uuid]" + ], + "shell_thickness": 1.0, + "hollow": false + } + } +] diff --git a/src/wasm-lib/kcl/tests/fillet-and-shell/execution_error.snap b/src/wasm-lib/kcl/tests/fillet-and-shell/execution_error.snap new file mode 100644 index 000000000..a20130a9a --- /dev/null +++ b/src/wasm-lib/kcl/tests/fillet-and-shell/execution_error.snap @@ -0,0 +1,13 @@ +--- +source: kcl/src/simulation_tests.rs +description: Error from executing fillet-and-shell.kcl +snapshot_kind: text +--- +KCL Engine error + + × engine: Modeling command failed: websocket closed early + ╭─[1:1] + 1 │ rpizWidth = 30 + · ▲ + 2 │ rpizLength = 65 + ╰──── diff --git a/src/wasm-lib/kcl/tests/function_sketch/artifact_commands.snap b/src/wasm-lib/kcl/tests/function_sketch/artifact_commands.snap new file mode 100644 index 000000000..ea054bf6b --- /dev/null +++ b/src/wasm-lib/kcl/tests/function_sketch/artifact_commands.snap @@ -0,0 +1,630 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands function_sketch.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 28, + 47, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 55, + 80, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 55, + 80, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 55, + 80, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 88, + 103, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 6.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 111, + 126, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 134, + 150, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -6.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 158, + 166, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 158, + 166, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 187, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 187, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 3.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 187, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 187, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 187, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 187, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 187, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 187, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 187, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 187, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 187, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 187, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 187, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/function_sketch_with_position/artifact_commands.snap b/src/wasm-lib/kcl/tests/function_sketch_with_position/artifact_commands.snap new file mode 100644 index 000000000..06eff8dbf --- /dev/null +++ b/src/wasm-lib/kcl/tests/function_sketch_with_position/artifact_commands.snap @@ -0,0 +1,630 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands function_sketch_with_position.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31, + 50, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58, + 78, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58, + 78, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58, + 78, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 86, + 101, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 6.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 109, + 124, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 132, + 148, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -6.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 156, + 164, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 156, + 164, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 172, + 185, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 172, + 185, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 3.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 172, + 185, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 172, + 185, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 172, + 185, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 172, + 185, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 172, + 185, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 172, + 185, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 172, + 185, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 172, + 185, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 172, + 185, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 172, + 185, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 172, + 185, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/helix_ccw/artifact_commands.snap b/src/wasm-lib/kcl/tests/helix_ccw/artifact_commands.snap new file mode 100644 index 000000000..0222bf55a --- /dev/null +++ b/src/wasm-lib/kcl/tests/helix_ccw/artifact_commands.snap @@ -0,0 +1,520 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands helix_ccw.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10, + 29, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 78, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 78, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 78, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 15.0, + "y": 5.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 78, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 5.0, + "y": 5.0 + }, + "radius": 10.0, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 78, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 84, + 98, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 84, + 98, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 10.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 84, + 98, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 84, + 98, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 84, + 98, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 84, + 98, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 84, + 98, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 104, + 199, + 0 + ], + "command": { + "type": "entity_make_helix", + "cylinder_id": "[uuid]", + "revolutions": 16.0, + "start_angle": { + "unit": "degrees", + "value": 0.0 + }, + "is_clockwise": false, + "length": 10.0 + } + } +] diff --git a/src/wasm-lib/kcl/tests/helix_ccw/ast.snap b/src/wasm-lib/kcl/tests/helix_ccw/ast.snap index 5a71ddf43..fb1b0465a 100644 --- a/src/wasm-lib/kcl/tests/helix_ccw/ast.snap +++ b/src/wasm-lib/kcl/tests/helix_ccw/ast.snap @@ -1,13 +1,14 @@ --- source: kcl/src/simulation_tests.rs description: Result of parsing helix_ccw.kcl +snapshot_kind: text --- { "Ok": { "body": [ { "declaration": { - "end": 188, + "end": 199, "id": { "end": 7, "name": "part001", @@ -151,90 +152,90 @@ description: Result of parsing helix_ccw.kcl { "arguments": [ { - "end": 184, + "end": 195, "properties": [ { - "end": 135, + "end": 146, "key": { - "end": 130, + "end": 141, "name": "revolutions", - "start": 119, + "start": 130, "type": "Identifier" }, - "start": 119, + "start": 130, "type": "ObjectProperty", "value": { - "end": 135, + "end": 146, "raw": "16", - "start": 133, + "start": 144, "type": "Literal", "type": "Literal", "value": 16.0 } }, { - "end": 158, + "end": 169, "key": { - "end": 154, + "end": 165, "name": "angleStart", - "start": 144, + "start": 155, "type": "Identifier" }, - "start": 144, + "start": 155, "type": "ObjectProperty", "value": { - "end": 158, + "end": 169, "raw": "0", - "start": 157, + "start": 168, "type": "Literal", "type": "Literal", "value": 0.0 } }, { - "end": 177, + "end": 188, "key": { - "end": 170, + "end": 181, "name": "ccw", - "start": 167, + "start": 178, "type": "Identifier" }, - "start": 167, + "start": 178, "type": "ObjectProperty", "value": { - "end": 177, + "end": 188, "raw": "true", - "start": 173, + "start": 184, "type": "Literal", "type": "Literal", "value": true } } ], - "start": 110, + "start": 121, "type": "ObjectExpression", "type": "ObjectExpression" }, { - "end": 187, - "start": 186, + "end": 198, + "start": 197, "type": "PipeSubstitution", "type": "PipeSubstitution" } ], "callee": { - "end": 109, - "name": "helix", + "end": 120, + "name": "helixRevolutions", "start": 104, "type": "Identifier" }, - "end": 188, + "end": 199, "start": 104, "type": "CallExpression", "type": "CallExpression" } ], - "end": 188, + "end": 199, "start": 10, "type": "PipeExpression", "type": "PipeExpression" @@ -242,14 +243,14 @@ description: Result of parsing helix_ccw.kcl "start": 0, "type": "VariableDeclarator" }, - "end": 188, + "end": 199, "kind": "const", "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" } ], - "end": 189, + "end": 200, "start": 0 } } diff --git a/src/wasm-lib/kcl/tests/helix_ccw/input.kcl b/src/wasm-lib/kcl/tests/helix_ccw/input.kcl index ba66117ae..1d28891c2 100644 --- a/src/wasm-lib/kcl/tests/helix_ccw/input.kcl +++ b/src/wasm-lib/kcl/tests/helix_ccw/input.kcl @@ -1,7 +1,7 @@ part001 = startSketchOn('XY') |> circle({ center = [5, 5], radius = 10 }, %) |> extrude(10, %) - |> helix({ + |> helixRevolutions({ revolutions = 16, angleStart = 0, ccw = true diff --git a/src/wasm-lib/kcl/tests/helix_ccw/ops.snap b/src/wasm-lib/kcl/tests/helix_ccw/ops.snap index 3e7c513ce..51aa724da 100644 --- a/src/wasm-lib/kcl/tests/helix_ccw/ops.snap +++ b/src/wasm-lib/kcl/tests/helix_ccw/ops.snap @@ -53,23 +53,23 @@ snapshot_kind: text "labeledArgs": { "data": { "sourceRange": [ - 110, - 184, + 121, + 195, 0 ] }, "solid": { "sourceRange": [ - 186, - 187, + 197, + 198, 0 ] } }, - "name": "helix", + "name": "helixRevolutions", "sourceRange": [ 104, - 188, + 199, 0 ], "type": "StdLibCall", diff --git a/src/wasm-lib/kcl/tests/i_shape/artifact_commands.snap b/src/wasm-lib/kcl/tests/i_shape/artifact_commands.snap new file mode 100644 index 000000000..5f1ff8daf --- /dev/null +++ b/src/wasm-lib/kcl/tests/i_shape/artifact_commands.snap @@ -0,0 +1,2149 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands i_shape.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 399, + 432, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 399, + 432, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 399, + 432, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 399, + 432, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 5.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 438, + 475, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 63.4, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 481, + 539, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": 5.0, + "y": 5.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 545, + 575, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 20.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 581, + 640, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": -5.0, + "y": 5.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 646, + 705, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -12.8, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 711, + 770, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": -5.0, + "y": 5.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 776, + 828, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 62.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 834, + 892, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": 5.0, + "y": 5.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 898, + 934, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 940, + 998, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": 5.0, + "y": 5.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1004, + 1034, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 18.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1040, + 1099, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": -5.0, + "y": 5.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1105, + 1168, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -44.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1174, + 1234, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": -5.0, + "y": -5.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1240, + 1273, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -18.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1279, + 1338, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": 5.0, + "y": -5.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1344, + 1380, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1386, + 1445, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": 5.0, + "y": -5.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1451, + 1506, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -62.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1512, + 1572, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": -5.0, + "y": -5.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1578, + 1702, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -16.6, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1708, + 1768, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": -5.0, + "y": -5.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1774, + 1807, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -20.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1813, + 1872, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": 5.0, + "y": -5.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1878, + 1886, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1878, + 1886, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1896, + 1917, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1896, + 1917, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1896, + 1917, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1896, + 1917, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1923, + 1936, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1942, + 2000, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": 5.0, + "y": 5.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2006, + 2042, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 15.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2048, + 2107, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": -5.0, + "y": 5.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2113, + 2127, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2133, + 2193, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": -5.0, + "y": -5.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2199, + 2238, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -15.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2244, + 2303, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc_to", + "to": { + "x": 5.0, + "y": -5.0, + "z": 0.0 + }, + "angle_snap_increment": null + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2309, + 2317, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2309, + 2317, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2343, + 2357, + 0 + ], + "command": { + "type": "solid2d_add_hole", + "object_id": "[uuid]", + "hole_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2343, + 2357, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 3.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2363, + 2378, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/if_else/artifact_commands.snap b/src/wasm-lib/kcl/tests/if_else/artifact_commands.snap new file mode 100644 index 000000000..f8d6e04d0 --- /dev/null +++ b/src/wasm-lib/kcl/tests/if_else/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands if_else.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/import_constant/artifact_commands.snap b/src/wasm-lib/kcl/tests/import_constant/artifact_commands.snap new file mode 100644 index 000000000..7bddde0b9 --- /dev/null +++ b/src/wasm-lib/kcl/tests/import_constant/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands import_constant.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/import_cycle1/artifact_commands.snap b/src/wasm-lib/kcl/tests/import_cycle1/artifact_commands.snap new file mode 100644 index 000000000..6ddd425b2 --- /dev/null +++ b/src/wasm-lib/kcl/tests/import_cycle1/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands import_cycle1.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/import_export/artifact_commands.snap b/src/wasm-lib/kcl/tests/import_export/artifact_commands.snap new file mode 100644 index 000000000..6671c9e6c --- /dev/null +++ b/src/wasm-lib/kcl/tests/import_export/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands import_export.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/import_glob/artifact_commands.snap b/src/wasm-lib/kcl/tests/import_glob/artifact_commands.snap new file mode 100644 index 000000000..4beb2aed2 --- /dev/null +++ b/src/wasm-lib/kcl/tests/import_glob/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands import_glob.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/import_side_effect/artifact_commands.snap b/src/wasm-lib/kcl/tests/import_side_effect/artifact_commands.snap new file mode 100644 index 000000000..600d93924 --- /dev/null +++ b/src/wasm-lib/kcl/tests/import_side_effect/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands import_side_effect.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/import_whole/artifact_commands.snap b/src/wasm-lib/kcl/tests/import_whole/artifact_commands.snap new file mode 100644 index 000000000..37d4e0401 --- /dev/null +++ b/src/wasm-lib/kcl/tests/import_whole/artifact_commands.snap @@ -0,0 +1,518 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands import_whole.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 19, + 1 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25, + 68, + 1 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25, + 68, + 1 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25, + 68, + 1 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 15.0, + "y": 5.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25, + 68, + 1 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 5.0, + "y": 5.0 + }, + "radius": 10.0, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25, + 68, + 1 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74, + 88, + 1 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74, + 88, + 1 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 10.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74, + 88, + 1 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74, + 88, + 1 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74, + 88, + 1 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74, + 88, + 1 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74, + 88, + 1 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 49, + 96, + 0 + ], + "command": { + "type": "solid3d_shell_face", + "object_id": "[uuid]", + "face_ids": [ + "[uuid]" + ], + "shell_thickness": 0.25, + "hollow": false + } + } +] diff --git a/src/wasm-lib/kcl/tests/import_whole/execution_error.snap b/src/wasm-lib/kcl/tests/import_whole/execution_error.snap new file mode 100644 index 000000000..28b950223 --- /dev/null +++ b/src/wasm-lib/kcl/tests/import_whole/execution_error.snap @@ -0,0 +1,13 @@ +--- +source: kcl/src/simulation_tests.rs +description: Error from executing import_whole.kcl +snapshot_kind: text +--- +KCL Engine error + + × engine: Modeling command failed: websocket closed early + ╭─[1:1] + 1 │ import "exported_mod.kcl" as foo + · ▲ + 2 │ + ╰──── diff --git a/src/wasm-lib/kcl/tests/import_whole/ops.snap b/src/wasm-lib/kcl/tests/import_whole/ops.snap index 276b9d484..4dabd3142 100644 --- a/src/wasm-lib/kcl/tests/import_whole/ops.snap +++ b/src/wasm-lib/kcl/tests/import_whole/ops.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Operations executed import_whole.kcl +snapshot_kind: text --- [ { diff --git a/src/wasm-lib/kcl/tests/index_of_array/artifact_commands.snap b/src/wasm-lib/kcl/tests/index_of_array/artifact_commands.snap new file mode 100644 index 000000000..3c9dd65b9 --- /dev/null +++ b/src/wasm-lib/kcl/tests/index_of_array/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands index_of_array.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/invalid_index_fractional/artifact_commands.snap b/src/wasm-lib/kcl/tests/invalid_index_fractional/artifact_commands.snap new file mode 100644 index 000000000..13747f1e2 --- /dev/null +++ b/src/wasm-lib/kcl/tests/invalid_index_fractional/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands invalid_index_fractional.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/invalid_index_negative/artifact_commands.snap b/src/wasm-lib/kcl/tests/invalid_index_negative/artifact_commands.snap new file mode 100644 index 000000000..67276ad98 --- /dev/null +++ b/src/wasm-lib/kcl/tests/invalid_index_negative/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands invalid_index_negative.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/invalid_index_str/artifact_commands.snap b/src/wasm-lib/kcl/tests/invalid_index_str/artifact_commands.snap new file mode 100644 index 000000000..744cd38cf --- /dev/null +++ b/src/wasm-lib/kcl/tests/invalid_index_str/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands invalid_index_str.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/invalid_member_object/artifact_commands.snap b/src/wasm-lib/kcl/tests/invalid_member_object/artifact_commands.snap new file mode 100644 index 000000000..b79c17852 --- /dev/null +++ b/src/wasm-lib/kcl/tests/invalid_member_object/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands invalid_member_object.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/invalid_member_object_prop/artifact_commands.snap b/src/wasm-lib/kcl/tests/invalid_member_object_prop/artifact_commands.snap new file mode 100644 index 000000000..0ff9fff1b --- /dev/null +++ b/src/wasm-lib/kcl/tests/invalid_member_object_prop/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands invalid_member_object_prop.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/kittycad_svg/artifact_commands.snap b/src/wasm-lib/kcl/tests/kittycad_svg/artifact_commands.snap new file mode 100644 index 000000000..be5f83cbd --- /dev/null +++ b/src/wasm-lib/kcl/tests/kittycad_svg/artifact_commands.snap @@ -0,0 +1,14224 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands kittycad_svg.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6, + 25, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31, + 56, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31, + 56, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31, + 56, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 62, + 87, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.52, + "y": -26.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 109, + 133, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.52, + "y": -25.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 163, + 187, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.84, + "y": -25.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 219, + 244, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.84, + "y": -24.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 274, + 296, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -24.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 328, + 349, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -6.72, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 379, + 403, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.84, + "y": -6.72, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 435, + 459, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.84, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 489, + 513, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.68, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 545, + 569, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.68, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 599, + 623, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.52, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 655, + 678, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.52, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 708, + 731, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 763, + 787, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 817, + 842, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 874, + 898, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 928, + 952, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 18.48, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 984, + 1009, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 18.48, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1040, + 1065, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 19.32, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1097, + 1122, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 19.32, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1153, + 1178, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 20.16, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1210, + 1235, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 20.16, + "y": -6.72, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1265, + 1287, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 21.0, + "y": -6.72, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1319, + 1342, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 21.0, + "y": -24.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1373, + 1399, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 20.16, + "y": -24.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1431, + 1456, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 20.16, + "y": -25.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1487, + 1512, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 18.48, + "y": -25.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1544, + 1570, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 18.48, + "y": -26.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1601, + 1627, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.96, + "y": -26.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1659, + 1685, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.96, + "y": -26.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1716, + 1741, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 16.8, + "y": -26.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1773, + 1798, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 16.8, + "y": -28.56, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1829, + 1855, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 11.76, + "y": -28.56, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1887, + 1913, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 11.76, + "y": -26.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1943, + 1968, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 12.6, + "y": -26.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2000, + 2025, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 12.6, + "y": -26.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2055, + 2079, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.4, + "y": -26.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2111, + 2135, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.4, + "y": -26.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2166, + 2191, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.24, + "y": -26.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2223, + 2248, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.24, + "y": -28.56, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2279, + 2303, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 4.2, + "y": -28.56, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2335, + 2359, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 4.2, + "y": -26.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2390, + 2415, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.04, + "y": -26.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2447, + 2472, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.04, + "y": -26.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2503, + 2532, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.84, + "y": -20.58, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2554, + 2583, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.84, + "y": -24.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2614, + 2639, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.52, + "y": -24.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2671, + 2695, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.52, + "y": -25.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2726, + 2751, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 18.48, + "y": -25.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2783, + 2809, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 18.48, + "y": -24.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2840, + 2866, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 20.16, + "y": -24.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2898, + 2924, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 20.16, + "y": -20.58, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2972, + 2997, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -24.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3019, + 3044, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -22.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3075, + 3101, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -22.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3133, + 3159, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -24.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3190, + 3215, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.68, + "y": -22.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3237, + 3262, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.68, + "y": -21.84, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3293, + 3318, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.88, + "y": -21.84, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3350, + 3375, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.88, + "y": -22.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3406, + 3431, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -24.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3453, + 3478, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -23.52, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3509, + 3534, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.88, + "y": -23.52, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3566, + 3591, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.88, + "y": -24.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3622, + 3648, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.12, + "y": -22.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3670, + 3696, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.12, + "y": -21.84, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3727, + 3766, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.96, + "y": -21.84, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3798, + 3837, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.96, + "y": -22.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3868, + 3893, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 16.8, + "y": -22.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3915, + 3940, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 16.8, + "y": -21.84, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3971, + 3997, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -21.84, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4029, + 4055, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -22.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4086, + 4112, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 18.48, + "y": -22.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4134, + 4160, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 18.48, + "y": -21.84, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4191, + 4217, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 19.32, + "y": -21.84, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4249, + 4275, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 19.32, + "y": -22.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4306, + 4332, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.12, + "y": -24.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4354, + 4380, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.12, + "y": -23.52, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4411, + 4437, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -23.52, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4469, + 4495, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -24.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4526, + 4551, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 18.48, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4573, + 4598, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 18.48, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4628, + 4653, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4685, + 4709, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4739, + 4762, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4794, + 4818, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4848, + 4872, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.52, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4904, + 4928, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.52, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4958, + 4982, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.68, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5014, + 5038, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.68, + "y": -6.72, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5068, + 5096, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.84, + "y": -6.72, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5128, + 5155, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.84, + "y": -8.4, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5185, + 5209, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 20.16, + "y": -8.4, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5241, + 5266, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 20.16, + "y": -6.72, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5296, + 5321, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 19.32, + "y": -6.72, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5353, + 5378, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 19.32, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5408, + 5433, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 20.16, + "y": -7.56, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5455, + 5483, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.84, + "y": -7.56, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5515, + 5544, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.84, + "y": -19.32, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5574, + 5600, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 20.16, + "y": -19.32, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5632, + 5657, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -10.08, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5679, + 5706, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -9.24, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5736, + 5764, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -9.24, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5796, + 5822, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -10.08, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5852, + 5878, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 18.48, + "y": -10.08, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5910, + 5935, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 18.48, + "y": -16.8, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5966, + 5991, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -16.8, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6023, + 6049, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -17.64, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6080, + 6105, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -17.64, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6137, + 6161, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -16.8, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6191, + 6215, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.52, + "y": -16.8, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6247, + 6285, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.52, + "y": -10.08, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6316, + 6342, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -10.92, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6364, + 6390, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -10.08, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6421, + 6447, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.12, + "y": -10.08, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6479, + 6505, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.12, + "y": -13.44, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6536, + 6562, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 14.28, + "y": -13.44, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6594, + 6619, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.24, + "y": -13.44, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6641, + 6667, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 11.76, + "y": -13.44, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6699, + 6725, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 11.76, + "y": -14.28, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6756, + 6782, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.92, + "y": -14.28, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6819, + 6858, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.92, + "y": -15.96, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6889, + 6928, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -15.96, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6960, + 6986, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -15.12, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7017, + 7043, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 14.28, + "y": -15.12, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7075, + 7114, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 14.28, + "y": -15.96, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7145, + 7184, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -15.96, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7216, + 7241, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -16.8, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7271, + 7295, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -16.8, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7327, + 7352, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -15.96, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7382, + 7407, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 6.72, + "y": -15.96, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7439, + 7477, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 6.72, + "y": -15.12, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7508, + 7546, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -15.12, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7578, + 7603, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -15.96, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7634, + 7660, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.08, + "y": -15.96, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7692, + 7718, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.08, + "y": -14.28, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7748, + 7773, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.24, + "y": -14.28, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7805, + 7829, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -12.6, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7851, + 7876, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -11.76, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7906, + 7931, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.04, + "y": -11.76, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7963, + 7987, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.04, + "y": -12.6, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8017, + 8040, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 4.2, + "y": -12.6, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8072, + 8096, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 4.2, + "y": -11.76, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8127, + 8152, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.04, + "y": -11.76, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8184, + 8209, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.04, + "y": -10.92, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8240, + 8279, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -10.92, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8311, + 8350, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -11.76, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8381, + 8405, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.4, + "y": -11.76, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8437, + 8460, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.4, + "y": -12.6, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8491, + 8515, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8537, + 8561, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8591, + 8614, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 4.2, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8646, + 8669, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 4.2, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8699, + 8723, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.04, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8755, + 8779, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.04, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8809, + 8833, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.88, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8865, + 8895, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.88, + "y": -0.84, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8925, + 8955, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 6.72, + "y": -0.84, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8987, + 9011, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 6.72, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9041, + 9065, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9097, + 9121, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9151, + 9174, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.4, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9206, + 9229, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.4, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9260, + 9284, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.24, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9316, + 9340, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.24, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9371, + 9396, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9418, + 9443, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9473, + 9498, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 11.76, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9530, + 9555, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 11.76, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9585, + 9609, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 12.6, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9641, + 9665, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 12.6, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9695, + 9720, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9752, + 9777, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9807, + 9832, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 14.28, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9864, + 9895, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 14.28, + "y": -0.84, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9925, + 9956, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.12, + "y": -0.84, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9988, + 10013, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.12, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10043, + 10081, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.96, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10113, + 10151, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.96, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10182, + 10206, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 16.8, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10238, + 10262, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 16.8, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10293, + 10318, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10340, + 10362, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -0.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10392, + 10427, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.96, + "y": -0.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10459, + 10497, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.96, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10528, + 10552, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 16.8, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10584, + 10608, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 16.8, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10639, + 10664, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10696, + 10721, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -4.62, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10751, + 10775, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 16.8, + "y": -4.62, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10807, + 10831, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 16.8, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10861, + 10886, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.96, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10918, + 10943, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.96, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10973, + 10998, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.12, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11030, + 11061, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.12, + "y": -0.84, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11091, + 11122, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 14.28, + "y": -0.84, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11154, + 11179, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 14.28, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11209, + 11234, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11266, + 11291, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11321, + 11345, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 12.6, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11377, + 11401, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 12.6, + "y": -4.62, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11431, + 11456, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 11.76, + "y": -4.62, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11488, + 11513, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 11.76, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11543, + 11567, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 12.6, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11599, + 11623, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 12.6, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11653, + 11677, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.04, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11699, + 11720, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.04, + "y": -0.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11750, + 11771, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -0.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11803, + 11827, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11857, + 11880, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.4, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11912, + 11935, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.4, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11965, + 11989, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.24, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12021, + 12045, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.24, + "y": -4.62, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12075, + 12098, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.4, + "y": -4.62, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12130, + 12153, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.4, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12183, + 12207, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12239, + 12263, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12293, + 12317, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 6.72, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12349, + 12379, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 6.72, + "y": -0.84, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12409, + 12439, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.88, + "y": -0.84, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12471, + 12495, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.88, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12525, + 12549, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.04, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12581, + 12605, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.04, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12635, + 12658, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 4.2, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12690, + 12713, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 4.2, + "y": -4.62, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12743, + 12767, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -4.62, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12799, + 12823, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12853, + 12876, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 4.2, + "y": -3.36, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12908, + 12931, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 4.2, + "y": -1.68, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12961, + 12986, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13008, + 13033, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13063, + 13088, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 14.28, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13120, + 13144, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 14.28, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13174, + 13198, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.12, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13230, + 13255, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.12, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13286, + 13324, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.96, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13356, + 13394, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 15.96, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13425, + 13449, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.88, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13471, + 13494, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.88, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13524, + 13547, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 6.72, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13579, + 13603, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 6.72, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13633, + 13657, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13689, + 13713, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.56, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13743, + 13767, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.04, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13799, + 13823, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.04, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13853, + 13878, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13900, + 13925, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13955, + 13979, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 16.8, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14011, + 14034, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 16.8, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14064, + 14088, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14120, + 14145, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 17.64, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14176, + 14201, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 18.48, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14233, + 14258, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 18.48, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14289, + 14313, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14335, + 14359, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14389, + 14413, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.52, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14445, + 14469, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.52, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14499, + 14523, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14555, + 14578, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.36, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14608, + 14630, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 4.2, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14662, + 14685, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 4.2, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14716, + 14738, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.4, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14760, + 14783, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.24, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14815, + 14839, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.24, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14870, + 14895, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.08, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14927, + 14952, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.08, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14982, + 15006, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.24, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15038, + 15062, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.24, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15092, + 15115, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.4, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15147, + 15171, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 11.76, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15193, + 15216, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 12.6, + "y": -4.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15248, + 15272, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 12.6, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15302, + 15327, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 11.76, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15359, + 15384, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 11.76, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15414, + 15439, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.92, + "y": -5.88, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15471, + 15496, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.92, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15526, + 15551, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 11.76, + "y": -5.04, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15583, + 15609, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 14.28, + "y": -10.92, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15631, + 15657, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -10.92, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15689, + 15715, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 13.44, + "y": -13.44, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15746, + 15772, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 14.28, + "y": -13.44, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15804, + 15812, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15804, + 15812, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 1.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15818, + 15831, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/kittycad_svg/execution_error.snap b/src/wasm-lib/kcl/tests/kittycad_svg/execution_error.snap new file mode 100644 index 000000000..b61e7cfb8 --- /dev/null +++ b/src/wasm-lib/kcl/tests/kittycad_svg/execution_error.snap @@ -0,0 +1,13 @@ +--- +source: kcl/src/simulation_tests.rs +description: Error from executing kittycad_svg.kcl +snapshot_kind: text +--- +KCL Engine error + + × engine: Modeling command failed: websocket closed early + ╭─[1:1] + 1 │ svg = startSketchOn('XY') + · ▲ + 2 │ |> startProfileAt([0, 0], %) + ╰──── diff --git a/src/wasm-lib/kcl/tests/kw_fn/artifact_commands.snap b/src/wasm-lib/kcl/tests/kw_fn/artifact_commands.snap new file mode 100644 index 000000000..f693ea08d --- /dev/null +++ b/src/wasm-lib/kcl/tests/kw_fn/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands kw_fn.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/kw_fn/rendered_model.png b/src/wasm-lib/kcl/tests/kw_fn/rendered_model.png new file mode 100644 index 000000000..6148ae432 Binary files /dev/null and b/src/wasm-lib/kcl/tests/kw_fn/rendered_model.png differ diff --git a/src/wasm-lib/kcl/tests/kw_fn_too_few_args/artifact_commands.snap b/src/wasm-lib/kcl/tests/kw_fn_too_few_args/artifact_commands.snap new file mode 100644 index 000000000..ccb715d4a --- /dev/null +++ b/src/wasm-lib/kcl/tests/kw_fn_too_few_args/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands kw_fn_too_few_args.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/kw_fn_unlabeled_but_has_label/artifact_commands.snap b/src/wasm-lib/kcl/tests/kw_fn_unlabeled_but_has_label/artifact_commands.snap new file mode 100644 index 000000000..627ad69c2 --- /dev/null +++ b/src/wasm-lib/kcl/tests/kw_fn_unlabeled_but_has_label/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands kw_fn_unlabeled_but_has_label.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/kw_fn_with_defaults/artifact_commands.snap b/src/wasm-lib/kcl/tests/kw_fn_with_defaults/artifact_commands.snap new file mode 100644 index 000000000..e2e5929e2 --- /dev/null +++ b/src/wasm-lib/kcl/tests/kw_fn_with_defaults/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands kw_fn_with_defaults.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/linear_pattern3d_a_pattern/artifact_commands.snap b/src/wasm-lib/kcl/tests/linear_pattern3d_a_pattern/artifact_commands.snap new file mode 100644 index 000000000..f44706940 --- /dev/null +++ b/src/wasm-lib/kcl/tests/linear_pattern3d_a_pattern/artifact_commands.snap @@ -0,0 +1,2142 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands linear_pattern3d_a_pattern.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 16, + 35, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41, + 66, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41, + 66, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41, + 66, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 72, + 87, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 2.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 93, + 108, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.0, + "y": 1.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 114, + 130, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -4.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 136, + 144, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 136, + 144, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 1.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 150, + 163, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 174, + 261, + 0 + ], + "command": { + "type": "entity_linear_pattern_transform", + "entity_id": "[uuid]", + "transform": [], + "transforms": [ + [ + { + "translate": { + "x": 6.0, + "y": 0.0, + "z": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 12.0, + "y": 0.0, + "z": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 18.0, + "y": 0.0, + "z": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 24.0, + "y": 0.0, + "z": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 30.0, + "y": 0.0, + "z": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 36.0, + "y": 0.0, + "z": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ] + ] + } + }, + { + "cmdId": "[uuid]", + "range": [ + 272, + 352, + 0 + ], + "command": { + "type": "entity_linear_pattern_transform", + "entity_id": "[uuid]", + "transform": [], + "transforms": [ + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 2.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 3.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 4.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 5.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 6.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ] + ] + } + }, + { + "cmdId": "[uuid]", + "range": [ + 272, + 352, + 0 + ], + "command": { + "type": "entity_linear_pattern_transform", + "entity_id": "[uuid]", + "transform": [], + "transforms": [ + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 2.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 3.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 4.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 5.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 6.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ] + ] + } + }, + { + "cmdId": "[uuid]", + "range": [ + 272, + 352, + 0 + ], + "command": { + "type": "entity_linear_pattern_transform", + "entity_id": "[uuid]", + "transform": [], + "transforms": [ + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 2.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 3.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 4.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 5.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 6.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ] + ] + } + }, + { + "cmdId": "[uuid]", + "range": [ + 272, + 352, + 0 + ], + "command": { + "type": "entity_linear_pattern_transform", + "entity_id": "[uuid]", + "transform": [], + "transforms": [ + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 2.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 3.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 4.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 5.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 6.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ] + ] + } + }, + { + "cmdId": "[uuid]", + "range": [ + 272, + 352, + 0 + ], + "command": { + "type": "entity_linear_pattern_transform", + "entity_id": "[uuid]", + "transform": [], + "transforms": [ + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 2.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 3.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 4.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 5.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 6.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ] + ] + } + }, + { + "cmdId": "[uuid]", + "range": [ + 272, + 352, + 0 + ], + "command": { + "type": "entity_linear_pattern_transform", + "entity_id": "[uuid]", + "transform": [], + "transforms": [ + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 2.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 3.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 4.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 5.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 6.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ] + ] + } + }, + { + "cmdId": "[uuid]", + "range": [ + 272, + 352, + 0 + ], + "command": { + "type": "entity_linear_pattern_transform", + "entity_id": "[uuid]", + "transform": [], + "transforms": [ + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 2.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 3.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 4.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 5.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ], + [ + { + "translate": { + "x": 0.0, + "y": 0.0, + "z": 6.0 + }, + "scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "rotation": { + "axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "angle": { + "unit": "degrees", + "value": 0.0 + }, + "origin": { + "type": "local" + } + }, + "replicate": true + } + ] + ] + } + } +] diff --git a/src/wasm-lib/kcl/tests/mike_stress_test/artifact_commands.snap b/src/wasm-lib/kcl/tests/mike_stress_test/artifact_commands.snap new file mode 100644 index 000000000..9f9789efb --- /dev/null +++ b/src/wasm-lib/kcl/tests/mike_stress_test/artifact_commands.snap @@ -0,0 +1,49483 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands mike_stress_test.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10, + 29, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 64, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 64, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 64, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 70, + 142, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.367, + "y": 0.212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 148, + 219, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4708, + "y": 0.4905, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 225, + 296, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 375, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 381, + 453, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 459, + 531, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 537, + 609, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 615, + 689, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 695, + 767, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 773, + 847, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 853, + 924, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 930, + 1001, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1007, + 1056, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1062, + 1136, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1142, + 1215, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1221, + 1294, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1300, + 1348, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1354, + 1427, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1433, + 1481, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1487, + 1559, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1565, + 1614, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1620, + 1691, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1697, + 1746, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1752, + 1825, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1831, + 1902, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1908, + 1980, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6716, + "y": -0.9606, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1986, + 2060, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0103, + "y": -0.3734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2066, + 2139, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1036, + "y": -0.4229, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2145, + 2217, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.452, + "y": -0.1123, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2223, + 2295, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8821, + "y": -0.7155, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2301, + 2350, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9195, + "y": 0.2692, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2356, + 2427, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7099, + "y": 0.1171, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2433, + 2505, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.3788, + "y": 0.7107, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2511, + 2585, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2973, + "y": -0.0665, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2591, + 2663, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2297, + "y": -0.7602, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2669, + 2741, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6357, + "y": 0.1946, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2747, + 2796, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5721, + "y": 0.2889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2802, + 2875, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.958, + "y": -0.0224, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2881, + 2952, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3299, + "y": -0.8354, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 2958, + 3029, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7435, + "y": -0.792, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3035, + 3084, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9936, + "y": 0.9043, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3090, + 3161, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.5036, + "y": 0.5151, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3167, + 3216, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5526, + "y": 0.7613, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3222, + 3293, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8593, + "y": 0.0841, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3299, + 3370, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8181, + "y": -0.9035, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3376, + 3448, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3166, + "y": -0.2419, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3454, + 3528, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4439, + "y": -0.2591, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3534, + 3607, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6605, + "y": -0.4036, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3613, + 3685, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.717, + "y": 0.2345, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3691, + 3764, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2568, + "y": -0.4503, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3770, + 3841, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6752, + "y": -0.9709, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3847, + 3918, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.569, + "y": 0.5919, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 3924, + 3995, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4001, + 4074, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4080, + 4152, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4158, + 4230, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4236, + 4308, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4314, + 4388, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4394, + 4466, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4472, + 4546, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4552, + 4623, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4629, + 4700, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4706, + 4755, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4761, + 4835, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4841, + 4914, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4920, + 4993, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 4999, + 5047, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5053, + 5126, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5132, + 5180, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5186, + 5258, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5264, + 5313, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5319, + 5390, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5396, + 5445, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5451, + 5524, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5530, + 5601, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5607, + 5678, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6752, + "y": -0.9709, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5684, + 5755, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.569, + "y": 0.5919, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5761, + 5832, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9464, + "y": -0.2685, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5838, + 5887, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5242, + "y": 0.9011, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5893, + 5966, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1426, + "y": -0.5194, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 5972, + 6044, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4287, + "y": -0.4224, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6050, + 6123, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0932, + "y": -0.9063, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6129, + 6200, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2768, + "y": 0.6816, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6206, + 6277, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9797, + "y": -0.0822, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6283, + 6354, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8667, + "y": -0.3011, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6360, + 6431, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5374, + "y": 0.0203, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6437, + 6508, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9332, + "y": -0.6228, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6514, + 6587, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1805, + "y": -0.3689, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6593, + 6642, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5384, + "y": 0.2378, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6648, + 6720, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3904, + "y": 0.1427, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6726, + 6797, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0978, + "y": 0.9908, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6803, + 6874, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5287, + "y": -0.7925, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6880, + 6951, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.379, + "y": 0.124, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 6957, + 7028, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.9485, + "y": 0.673, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7034, + 7106, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7452, + "y": -0.2132, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7112, + 7184, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1873, + "y": -0.1596, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7190, + 7263, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0573, + "y": -0.5436, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7269, + 7342, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0958, + "y": -0.7534, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7348, + 7421, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1725, + "y": -0.7669, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7427, + 7476, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8945, + "y": 0.6093, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7482, + 7554, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.367, + "y": 0.212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7560, + 7631, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4708, + "y": 0.4905, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7637, + 7708, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7714, + 7787, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7793, + 7865, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7871, + 7943, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 7949, + 8021, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8027, + 8101, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8107, + 8179, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8185, + 8259, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8265, + 8336, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8342, + 8413, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8419, + 8468, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8474, + 8548, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8554, + 8627, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8633, + 8706, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8712, + 8760, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8766, + 8839, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8845, + 8893, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8899, + 8971, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 8977, + 9026, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9032, + 9103, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9109, + 9158, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9164, + 9237, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9243, + 9314, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9320, + 9392, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6716, + "y": -0.9606, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9398, + 9472, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0103, + "y": -0.3734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9478, + 9551, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1036, + "y": -0.4229, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9557, + 9629, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.452, + "y": -0.1123, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9635, + 9707, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8821, + "y": -0.7155, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9713, + 9762, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9195, + "y": 0.2692, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9768, + 9839, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7099, + "y": 0.1171, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9845, + 9917, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.3788, + "y": 0.7107, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 9923, + 9997, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2973, + "y": -0.0665, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10003, + 10075, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2297, + "y": -0.7602, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10081, + 10153, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6357, + "y": 0.1946, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10159, + 10208, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5721, + "y": 0.2889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10214, + 10287, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.958, + "y": -0.0224, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10293, + 10364, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3299, + "y": -0.8354, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10370, + 10441, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7435, + "y": -0.792, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10447, + 10496, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9936, + "y": 0.9043, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10502, + 10573, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.5036, + "y": 0.5151, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10579, + 10628, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5526, + "y": 0.7613, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10634, + 10705, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8593, + "y": 0.0841, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10711, + 10782, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8181, + "y": -0.9035, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10788, + 10860, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3166, + "y": -0.2419, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10866, + 10940, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4439, + "y": -0.2591, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10946, + 11019, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6605, + "y": -0.4036, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11025, + 11097, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.717, + "y": 0.2345, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11103, + 11176, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2568, + "y": -0.4503, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11182, + 11253, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6752, + "y": -0.9709, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11259, + 11330, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.569, + "y": 0.5919, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11336, + 11407, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11413, + 11486, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11492, + 11564, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11570, + 11642, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11648, + 11720, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11726, + 11800, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11806, + 11878, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11884, + 11958, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 11964, + 12035, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12041, + 12112, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12118, + 12167, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12173, + 12247, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12253, + 12326, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12332, + 12405, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12411, + 12459, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12465, + 12538, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12544, + 12592, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12598, + 12670, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12676, + 12725, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12731, + 12802, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12808, + 12857, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12863, + 12935, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.367, + "y": 0.212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12941, + 13012, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4708, + "y": 0.4905, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13018, + 13089, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13095, + 13168, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13174, + 13246, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13252, + 13324, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13330, + 13402, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13408, + 13482, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13488, + 13560, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13566, + 13640, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13646, + 13717, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13723, + 13794, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13800, + 13849, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13855, + 13929, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 13935, + 14008, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14014, + 14087, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14093, + 14141, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14147, + 14220, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14226, + 14274, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14280, + 14352, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14358, + 14407, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14413, + 14484, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14490, + 14539, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14545, + 14618, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14624, + 14695, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14701, + 14773, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6716, + "y": -0.9606, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14779, + 14853, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0103, + "y": -0.3734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14859, + 14931, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.367, + "y": 0.212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 14937, + 15008, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4708, + "y": 0.4905, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15014, + 15085, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15091, + 15164, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15170, + 15242, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15248, + 15320, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15326, + 15398, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15404, + 15478, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15484, + 15556, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15562, + 15636, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15642, + 15713, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15719, + 15790, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15796, + 15845, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15851, + 15925, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 15931, + 16004, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 16010, + 16083, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 16089, + 16137, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 16143, + 16216, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 16222, + 16270, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 16276, + 16348, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 16354, + 16403, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 16409, + 16480, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 16486, + 16535, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 16541, + 16614, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 16620, + 16691, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 16697, + 16769, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6716, + "y": -0.9606, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 16775, + 16849, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0103, + "y": -0.3734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 16855, + 16928, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1036, + "y": -0.4229, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 16934, + 17006, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.452, + "y": -0.1123, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 17012, + 17084, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8821, + "y": -0.7155, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 17090, + 17139, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9195, + "y": 0.2692, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 17145, + 17216, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7099, + "y": 0.1171, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 17222, + 17294, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.3788, + "y": 0.7107, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 17300, + 17374, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2973, + "y": -0.0665, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 17380, + 17452, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2297, + "y": -0.7602, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 17458, + 17530, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6357, + "y": 0.1946, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 17536, + 17585, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5721, + "y": 0.2889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 17591, + 17664, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.958, + "y": -0.0224, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 17670, + 17741, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3299, + "y": -0.8354, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 17747, + 17818, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7435, + "y": -0.792, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 17824, + 17873, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9936, + "y": 0.9043, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 17879, + 17950, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.5036, + "y": 0.5151, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 17956, + 18005, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5526, + "y": 0.7613, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 18011, + 18082, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8593, + "y": 0.0841, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 18088, + 18159, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8181, + "y": -0.9035, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 18165, + 18237, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3166, + "y": -0.2419, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 18243, + 18317, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4439, + "y": -0.2591, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 18323, + 18396, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6605, + "y": -0.4036, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 18402, + 18474, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.717, + "y": 0.2345, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 18480, + 18553, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2568, + "y": -0.4503, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 18559, + 18630, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6752, + "y": -0.9709, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 18636, + 18707, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.569, + "y": 0.5919, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 18713, + 18784, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 18790, + 18863, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 18869, + 18941, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 18947, + 19019, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 19025, + 19097, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 19103, + 19177, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 19183, + 19255, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 19261, + 19335, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 19341, + 19412, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 19418, + 19489, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 19495, + 19544, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 19550, + 19624, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 19630, + 19703, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 19709, + 19782, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 19788, + 19836, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 19842, + 19915, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 19921, + 19969, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 19975, + 20047, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 20053, + 20102, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 20108, + 20179, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 20185, + 20234, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 20240, + 20313, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 20319, + 20390, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 20396, + 20467, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6752, + "y": -0.9709, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 20473, + 20544, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.569, + "y": 0.5919, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 20550, + 20621, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9464, + "y": -0.2685, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 20627, + 20676, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5242, + "y": 0.9011, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 20682, + 20755, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1426, + "y": -0.5194, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 20761, + 20833, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4287, + "y": -0.4224, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 20839, + 20912, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0932, + "y": -0.9063, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 20918, + 20989, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2768, + "y": 0.6816, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 20995, + 21066, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9797, + "y": -0.0822, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 21072, + 21143, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8667, + "y": -0.3011, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 21149, + 21220, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5374, + "y": 0.0203, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 21226, + 21297, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9332, + "y": -0.6228, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 21303, + 21376, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1805, + "y": -0.3689, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 21382, + 21431, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5384, + "y": 0.2378, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 21437, + 21509, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3904, + "y": 0.1427, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 21515, + 21586, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0978, + "y": 0.9908, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 21592, + 21663, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5287, + "y": -0.7925, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 21669, + 21740, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.379, + "y": 0.124, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 21746, + 21817, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.9485, + "y": 0.673, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 21823, + 21895, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7452, + "y": -0.2132, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 21901, + 21973, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1873, + "y": -0.1596, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 21979, + 22052, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0573, + "y": -0.5436, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 22058, + 22131, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0958, + "y": -0.7534, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 22137, + 22210, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1725, + "y": -0.7669, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 22216, + 22265, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8945, + "y": 0.6093, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 22271, + 22343, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.367, + "y": 0.212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 22349, + 22420, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4708, + "y": 0.4905, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 22426, + 22497, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 22503, + 22576, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 22582, + 22654, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 22660, + 22732, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 22738, + 22810, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 22816, + 22890, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 22896, + 22968, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 22974, + 23048, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 23054, + 23125, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 23131, + 23202, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 23208, + 23257, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 23263, + 23337, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 23343, + 23416, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 23422, + 23495, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 23501, + 23549, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 23555, + 23628, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 23634, + 23682, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 23688, + 23760, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 23766, + 23815, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 23821, + 23892, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 23898, + 23947, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 23953, + 24026, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 24032, + 24103, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 24109, + 24181, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6716, + "y": -0.9606, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 24187, + 24261, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0103, + "y": -0.3734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 24267, + 24340, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1036, + "y": -0.4229, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 24346, + 24418, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.452, + "y": -0.1123, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 24424, + 24496, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8821, + "y": -0.7155, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 24502, + 24551, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9195, + "y": 0.2692, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 24557, + 24628, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7099, + "y": 0.1171, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 24634, + 24706, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.3788, + "y": 0.7107, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 24712, + 24786, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2973, + "y": -0.0665, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 24792, + 24864, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2297, + "y": -0.7602, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 24870, + 24942, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6357, + "y": 0.1946, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 24948, + 24997, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5721, + "y": 0.2889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25003, + 25076, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.958, + "y": -0.0224, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25082, + 25153, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3299, + "y": -0.8354, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25159, + 25230, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7435, + "y": -0.792, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25236, + 25285, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9936, + "y": 0.9043, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25291, + 25362, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.5036, + "y": 0.5151, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25368, + 25417, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5526, + "y": 0.7613, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25423, + 25494, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8593, + "y": 0.0841, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25500, + 25571, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8181, + "y": -0.9035, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25577, + 25649, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3166, + "y": -0.2419, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25655, + 25729, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4439, + "y": -0.2591, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25735, + 25808, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6605, + "y": -0.4036, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25814, + 25886, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.717, + "y": 0.2345, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25892, + 25965, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2568, + "y": -0.4503, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 25971, + 26042, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6752, + "y": -0.9709, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 26048, + 26119, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.569, + "y": 0.5919, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 26125, + 26196, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 26202, + 26275, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 26281, + 26353, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 26359, + 26431, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 26437, + 26509, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 26515, + 26589, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 26595, + 26667, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 26673, + 26747, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 26753, + 26824, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 26830, + 26901, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 26907, + 26956, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 26962, + 27036, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 27042, + 27115, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 27121, + 27194, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 27200, + 27248, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 27254, + 27327, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 27333, + 27381, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 27387, + 27459, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 27465, + 27514, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 27520, + 27591, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 27597, + 27646, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 27652, + 27724, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.367, + "y": 0.212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 27730, + 27801, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4708, + "y": 0.4905, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 27807, + 27878, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 27884, + 27957, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 27963, + 28035, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 28041, + 28113, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 28119, + 28191, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 28197, + 28271, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 28277, + 28349, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 28355, + 28429, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 28435, + 28506, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 28512, + 28583, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 28589, + 28638, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 28644, + 28718, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 28724, + 28797, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 28803, + 28876, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 28882, + 28930, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 28936, + 29009, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29015, + 29063, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29069, + 29141, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29147, + 29196, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29202, + 29273, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29279, + 29328, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29334, + 29407, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29413, + 29484, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29490, + 29562, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6716, + "y": -0.9606, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29568, + 29642, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0103, + "y": -0.3734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29648, + 29721, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1036, + "y": -0.4229, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29727, + 29799, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.452, + "y": -0.1123, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29805, + 29877, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8821, + "y": -0.7155, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29883, + 29932, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9195, + "y": 0.2692, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29938, + 30009, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7099, + "y": 0.1171, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 30015, + 30087, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.3788, + "y": 0.7107, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 30093, + 30167, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2973, + "y": -0.0665, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 30173, + 30245, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2297, + "y": -0.7602, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 30251, + 30323, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6357, + "y": 0.1946, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 30329, + 30378, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5721, + "y": 0.2889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 30384, + 30457, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.958, + "y": -0.0224, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 30463, + 30534, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3299, + "y": -0.8354, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 30540, + 30611, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7435, + "y": -0.792, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 30617, + 30666, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9936, + "y": 0.9043, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 30672, + 30743, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.5036, + "y": 0.5151, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 30749, + 30798, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5526, + "y": 0.7613, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 30804, + 30875, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8593, + "y": 0.0841, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 30881, + 30952, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8181, + "y": -0.9035, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 30958, + 31030, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3166, + "y": -0.2419, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31036, + 31110, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4439, + "y": -0.2591, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31116, + 31189, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6605, + "y": -0.4036, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31195, + 31267, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.717, + "y": 0.2345, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31273, + 31346, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2568, + "y": -0.4503, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31352, + 31423, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6752, + "y": -0.9709, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31429, + 31500, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.569, + "y": 0.5919, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31506, + 31577, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31583, + 31656, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31662, + 31734, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31740, + 31812, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31818, + 31890, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31896, + 31970, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 31976, + 32048, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 32054, + 32128, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 32134, + 32205, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 32211, + 32282, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 32288, + 32337, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 32343, + 32417, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 32423, + 32496, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 32502, + 32575, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 32581, + 32629, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 32635, + 32708, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 32714, + 32762, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 32768, + 32840, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 32846, + 32895, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 32901, + 32972, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 32978, + 33051, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0958, + "y": -0.7534, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 33057, + 33130, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1725, + "y": -0.7669, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 33136, + 33185, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8945, + "y": 0.6093, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 33191, + 33264, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 33270, + 33341, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 33347, + 33418, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6752, + "y": -0.9709, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 33424, + 33495, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.569, + "y": 0.5919, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 33501, + 33572, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9464, + "y": -0.2685, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 33578, + 33627, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5242, + "y": 0.9011, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 33633, + 33706, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1426, + "y": -0.5194, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 33712, + 33784, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4287, + "y": -0.4224, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 33790, + 33863, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0932, + "y": -0.9063, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 33869, + 33940, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2768, + "y": 0.6816, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 33946, + 34017, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9797, + "y": -0.0822, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 34023, + 34094, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8667, + "y": -0.3011, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 34100, + 34171, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5374, + "y": 0.0203, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 34177, + 34248, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9332, + "y": -0.6228, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 34254, + 34327, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1805, + "y": -0.3689, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 34333, + 34382, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5384, + "y": 0.2378, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 34388, + 34460, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3904, + "y": 0.1427, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 34466, + 34537, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0978, + "y": 0.9908, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 34543, + 34614, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5287, + "y": -0.7925, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 34620, + 34691, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.379, + "y": 0.124, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 34697, + 34768, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.9485, + "y": 0.673, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 34774, + 34846, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7452, + "y": -0.2132, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 34852, + 34924, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1873, + "y": -0.1596, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 34930, + 35003, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0573, + "y": -0.5436, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35009, + 35082, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0958, + "y": -0.7534, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35088, + 35161, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1725, + "y": -0.7669, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35167, + 35216, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8945, + "y": 0.6093, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35222, + 35293, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6239, + "y": 0.4054, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35299, + 35371, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1379, + "y": -0.4787, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35377, + 35448, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.9517, + "y": 0.862, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35454, + 35503, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9399, + "y": 0.6326, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35509, + 35582, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8632, + "y": 0.0162, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35588, + 35660, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1917, + "y": -0.4916, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35666, + 35739, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8644, + "y": -0.1143, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35745, + 35819, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0291, + "y": -0.5214, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35825, + 35896, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8713, + "y": 0.7866, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35902, + 35951, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8843, + "y": -0.1825, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35957, + 36028, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6978, + "y": 0.0441, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 36034, + 36109, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4806, + "y": -0.0285, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 36115, + 36188, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.4128, + "y": -0.4494, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 36194, + 36242, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7911, + "y": 0.8934, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 36248, + 36319, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6507, + "y": -0.689, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 36325, + 36397, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1049, + "y": -0.5467, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 36403, + 36475, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.5761, + "y": -0.264, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 36481, + 36552, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3983, + "y": 0.8037, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 36558, + 36607, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6738, + "y": -0.9184, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 36613, + 36685, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8599, + "y": -0.9499, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 36691, + 36762, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6285, + "y": -0.5187, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 36768, + 36839, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3222, + "y": 0.2462, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 36845, + 36917, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1975, + "y": -0.7529, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 36923, + 36996, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4318, + "y": 0.1895, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37002, + 37073, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8715, + "y": -0.7216, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37079, + 37151, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.367, + "y": 0.212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37157, + 37228, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4708, + "y": 0.4905, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37234, + 37305, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37311, + 37384, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37390, + 37462, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37468, + 37540, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37546, + 37618, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37624, + 37698, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37704, + 37776, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37782, + 37856, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37862, + 37933, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37939, + 38010, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 38016, + 38065, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 38071, + 38145, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 38151, + 38224, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 38230, + 38303, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 38309, + 38357, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 38363, + 38436, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 38442, + 38490, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 38496, + 38568, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 38574, + 38623, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 38629, + 38700, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 38706, + 38755, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 38761, + 38834, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 38840, + 38911, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 38917, + 38989, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6716, + "y": -0.9606, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 38995, + 39069, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0103, + "y": -0.3734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 39075, + 39148, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1036, + "y": -0.4229, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 39154, + 39226, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.452, + "y": -0.1123, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 39232, + 39304, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8821, + "y": -0.7155, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 39310, + 39359, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9195, + "y": 0.2692, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 39365, + 39436, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7099, + "y": 0.1171, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 39442, + 39514, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.3788, + "y": 0.7107, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 39520, + 39594, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2973, + "y": -0.0665, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 39600, + 39672, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2297, + "y": -0.7602, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 39678, + 39750, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6357, + "y": 0.1946, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 39756, + 39805, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5721, + "y": 0.2889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 39811, + 39884, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.958, + "y": -0.0224, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 39890, + 39961, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3299, + "y": -0.8354, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 39967, + 40038, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7435, + "y": -0.792, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 40044, + 40093, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9936, + "y": 0.9043, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 40099, + 40170, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.5036, + "y": 0.5151, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 40176, + 40225, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5526, + "y": 0.7613, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 40231, + 40302, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8593, + "y": 0.0841, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 40308, + 40379, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8181, + "y": -0.9035, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 40385, + 40457, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3166, + "y": -0.2419, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 40463, + 40537, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4439, + "y": -0.2591, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 40543, + 40616, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6605, + "y": -0.4036, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 40622, + 40694, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.717, + "y": 0.2345, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 40700, + 40773, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2568, + "y": -0.4503, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 40779, + 40850, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6752, + "y": -0.9709, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 40856, + 40927, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.569, + "y": 0.5919, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 40933, + 41004, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41010, + 41083, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41089, + 41161, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41167, + 41239, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41245, + 41317, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41323, + 41397, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41403, + 41475, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41481, + 41555, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41561, + 41632, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41638, + 41709, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41715, + 41764, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41770, + 41844, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41850, + 41923, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 41929, + 42002, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 42008, + 42056, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 42062, + 42135, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 42141, + 42189, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 42195, + 42267, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 42273, + 42322, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 42328, + 42399, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 42405, + 42454, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 42460, + 42533, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 42539, + 42610, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 42616, + 42687, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6752, + "y": -0.9709, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 42693, + 42764, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.569, + "y": 0.5919, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 42770, + 42841, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9464, + "y": -0.2685, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 42847, + 42896, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5242, + "y": 0.9011, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 42902, + 42975, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1426, + "y": -0.5194, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 42981, + 43053, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4287, + "y": -0.4224, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 43059, + 43132, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0932, + "y": -0.9063, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 43138, + 43209, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2768, + "y": 0.6816, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 43215, + 43286, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9797, + "y": -0.0822, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 43292, + 43363, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8667, + "y": -0.3011, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 43369, + 43440, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5374, + "y": 0.0203, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 43446, + 43517, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9332, + "y": -0.6228, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 43523, + 43596, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1805, + "y": -0.3689, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 43602, + 43651, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5384, + "y": 0.2378, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 43657, + 43729, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3904, + "y": 0.1427, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 43735, + 43806, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0978, + "y": 0.9908, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 43812, + 43883, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5287, + "y": -0.7925, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 43889, + 43960, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.379, + "y": 0.124, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 43966, + 44037, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.9485, + "y": 0.673, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 44043, + 44115, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7452, + "y": -0.2132, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 44121, + 44193, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1873, + "y": -0.1596, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 44199, + 44272, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0573, + "y": -0.5436, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 44278, + 44351, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0958, + "y": -0.7534, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 44357, + 44430, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1725, + "y": -0.7669, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 44436, + 44485, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8945, + "y": 0.6093, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 44491, + 44563, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.367, + "y": 0.212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 44569, + 44640, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4708, + "y": 0.4905, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 44646, + 44717, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 44723, + 44796, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 44802, + 44874, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 44880, + 44952, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 44958, + 45030, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 45036, + 45110, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 45116, + 45188, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 45194, + 45268, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 45274, + 45345, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 45351, + 45422, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 45428, + 45477, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 45483, + 45557, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 45563, + 45636, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 45642, + 45715, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 45721, + 45769, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 45775, + 45848, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 45854, + 45902, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 45908, + 45980, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 45986, + 46035, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 46041, + 46112, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 46118, + 46167, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 46173, + 46246, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 46252, + 46323, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 46329, + 46401, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6716, + "y": -0.9606, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 46407, + 46481, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0103, + "y": -0.3734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 46487, + 46560, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1036, + "y": -0.4229, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 46566, + 46638, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.452, + "y": -0.1123, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 46644, + 46716, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8821, + "y": -0.7155, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 46722, + 46771, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9195, + "y": 0.2692, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 46777, + 46848, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7099, + "y": 0.1171, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 46854, + 46926, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.3788, + "y": 0.7107, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 46932, + 47006, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2973, + "y": -0.0665, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 47012, + 47084, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2297, + "y": -0.7602, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 47090, + 47162, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6357, + "y": 0.1946, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 47168, + 47217, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5721, + "y": 0.2889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 47223, + 47296, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.958, + "y": -0.0224, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 47302, + 47373, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3299, + "y": -0.8354, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 47379, + 47450, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7435, + "y": -0.792, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 47456, + 47505, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9936, + "y": 0.9043, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 47511, + 47582, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.5036, + "y": 0.5151, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 47588, + 47637, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5526, + "y": 0.7613, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 47643, + 47714, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8593, + "y": 0.0841, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 47720, + 47791, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8181, + "y": -0.9035, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 47797, + 47869, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3166, + "y": -0.2419, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 47875, + 47949, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4439, + "y": -0.2591, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 47955, + 48028, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6605, + "y": -0.4036, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 48034, + 48106, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.717, + "y": 0.2345, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 48112, + 48185, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2568, + "y": -0.4503, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 48191, + 48262, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6752, + "y": -0.9709, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 48268, + 48339, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.569, + "y": 0.5919, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 48345, + 48416, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 48422, + 48495, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 48501, + 48573, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 48579, + 48651, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 48657, + 48729, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 48735, + 48809, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 48815, + 48887, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 48893, + 48967, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 48973, + 49044, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 49050, + 49121, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 49127, + 49176, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 49182, + 49256, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 49262, + 49335, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 49341, + 49414, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 49420, + 49468, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 49474, + 49547, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 49553, + 49601, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 49607, + 49679, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 49685, + 49734, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 49740, + 49811, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 49817, + 49866, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 49872, + 49944, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.367, + "y": 0.212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 49950, + 50021, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4708, + "y": 0.4905, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 50027, + 50098, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 50104, + 50177, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 50183, + 50255, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 50261, + 50333, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 50339, + 50411, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 50417, + 50491, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 50497, + 50569, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 50575, + 50649, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 50655, + 50726, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 50732, + 50803, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 50809, + 50858, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 50864, + 50938, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 50944, + 51017, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 51023, + 51096, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 51102, + 51150, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 51156, + 51229, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 51235, + 51283, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 51289, + 51361, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 51367, + 51416, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 51422, + 51493, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 51499, + 51548, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 51554, + 51627, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 51633, + 51704, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 51710, + 51782, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6716, + "y": -0.9606, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 51788, + 51862, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0103, + "y": -0.3734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 51868, + 51940, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.367, + "y": 0.212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 51946, + 52017, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4708, + "y": 0.4905, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 52023, + 52094, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 52100, + 52173, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 52179, + 52251, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 52257, + 52329, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 52335, + 52407, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 52413, + 52487, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 52493, + 52565, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 52571, + 52645, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 52651, + 52722, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 52728, + 52799, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 52805, + 52854, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 52860, + 52934, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 52940, + 53013, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 53019, + 53092, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 53098, + 53146, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 53152, + 53225, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 53231, + 53279, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 53285, + 53357, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 53363, + 53412, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 53418, + 53489, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 53495, + 53544, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 53550, + 53623, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 53629, + 53700, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 53706, + 53778, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6716, + "y": -0.9606, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 53784, + 53858, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0103, + "y": -0.3734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 53864, + 53937, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1036, + "y": -0.4229, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 53943, + 54015, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.452, + "y": -0.1123, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 54021, + 54093, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8821, + "y": -0.7155, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 54099, + 54148, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9195, + "y": 0.2692, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 54154, + 54225, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7099, + "y": 0.1171, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 54231, + 54303, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.3788, + "y": 0.7107, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 54309, + 54383, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2973, + "y": -0.0665, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 54389, + 54461, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2297, + "y": -0.7602, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 54467, + 54539, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6357, + "y": 0.1946, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 54545, + 54594, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5721, + "y": 0.2889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 54600, + 54673, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.958, + "y": -0.0224, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 54679, + 54750, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3299, + "y": -0.8354, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 54756, + 54827, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7435, + "y": -0.792, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 54833, + 54882, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9936, + "y": 0.9043, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 54888, + 54959, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.5036, + "y": 0.5151, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 54965, + 55014, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5526, + "y": 0.7613, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 55020, + 55091, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8593, + "y": 0.0841, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 55097, + 55168, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8181, + "y": -0.9035, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 55174, + 55246, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3166, + "y": -0.2419, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 55252, + 55326, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4439, + "y": -0.2591, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 55332, + 55405, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6605, + "y": -0.4036, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 55411, + 55483, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.717, + "y": 0.2345, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 55489, + 55562, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2568, + "y": -0.4503, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 55568, + 55639, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6752, + "y": -0.9709, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 55645, + 55716, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.569, + "y": 0.5919, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 55722, + 55793, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 55799, + 55872, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 55878, + 55950, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 55956, + 56028, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56034, + 56106, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56112, + 56186, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56192, + 56264, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56270, + 56344, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56350, + 56421, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56427, + 56498, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56504, + 56553, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56559, + 56633, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56639, + 56712, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56718, + 56791, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56797, + 56845, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56851, + 56924, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56930, + 56978, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56984, + 57056, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 57062, + 57111, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 57117, + 57188, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 57194, + 57243, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 57249, + 57322, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 57328, + 57399, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 57405, + 57476, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6752, + "y": -0.9709, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 57482, + 57553, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.569, + "y": 0.5919, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 57559, + 57630, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9464, + "y": -0.2685, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 57636, + 57685, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5242, + "y": 0.9011, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 57691, + 57764, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1426, + "y": -0.5194, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 57770, + 57842, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4287, + "y": -0.4224, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 57848, + 57921, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0932, + "y": -0.9063, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 57927, + 57998, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2768, + "y": 0.6816, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58004, + 58075, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9797, + "y": -0.0822, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58081, + 58152, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8667, + "y": -0.3011, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58158, + 58229, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5374, + "y": 0.0203, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58235, + 58306, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9332, + "y": -0.6228, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58312, + 58385, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1805, + "y": -0.3689, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58391, + 58440, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5384, + "y": 0.2378, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58446, + 58518, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3904, + "y": 0.1427, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58524, + 58595, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0978, + "y": 0.9908, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58601, + 58672, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5287, + "y": -0.7925, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58678, + 58749, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.379, + "y": 0.124, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58755, + 58826, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.9485, + "y": 0.673, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58832, + 58904, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7452, + "y": -0.2132, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58910, + 58982, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1873, + "y": -0.1596, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 58988, + 59061, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0573, + "y": -0.5436, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 59067, + 59140, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0958, + "y": -0.7534, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 59146, + 59219, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1725, + "y": -0.7669, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 59225, + 59274, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8945, + "y": 0.6093, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 59280, + 59352, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.367, + "y": 0.212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 59358, + 59429, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4708, + "y": 0.4905, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 59435, + 59506, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 59512, + 59585, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 59591, + 59663, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 59669, + 59741, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 59747, + 59819, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 59825, + 59899, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 59905, + 59977, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 59983, + 60057, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 60063, + 60134, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 60140, + 60211, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 60217, + 60266, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 60272, + 60346, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 60352, + 60425, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 60431, + 60504, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 60510, + 60558, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 60564, + 60637, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 60643, + 60691, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 60697, + 60769, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 60775, + 60824, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 60830, + 60901, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 60907, + 60956, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 60962, + 61035, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 61041, + 61112, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 61118, + 61190, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6716, + "y": -0.9606, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 61196, + 61270, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0103, + "y": -0.3734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 61276, + 61349, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1036, + "y": -0.4229, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 61355, + 61427, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.452, + "y": -0.1123, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 61433, + 61505, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8821, + "y": -0.7155, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 61511, + 61560, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9195, + "y": 0.2692, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 61566, + 61637, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7099, + "y": 0.1171, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 61643, + 61715, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.3788, + "y": 0.7107, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 61721, + 61795, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2973, + "y": -0.0665, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 61801, + 61873, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2297, + "y": -0.7602, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 61879, + 61951, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6357, + "y": 0.1946, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 61957, + 62006, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5721, + "y": 0.2889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 62012, + 62085, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.958, + "y": -0.0224, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 62091, + 62162, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3299, + "y": -0.8354, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 62168, + 62239, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7435, + "y": -0.792, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 62245, + 62294, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9936, + "y": 0.9043, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 62300, + 62371, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.5036, + "y": 0.5151, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 62377, + 62426, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5526, + "y": 0.7613, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 62432, + 62503, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8593, + "y": 0.0841, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 62509, + 62580, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8181, + "y": -0.9035, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 62586, + 62658, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3166, + "y": -0.2419, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 62664, + 62738, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4439, + "y": -0.2591, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 62744, + 62817, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6605, + "y": -0.4036, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 62823, + 62895, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.717, + "y": 0.2345, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 62901, + 62974, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2568, + "y": -0.4503, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 62980, + 63051, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6752, + "y": -0.9709, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 63057, + 63128, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.569, + "y": 0.5919, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 63134, + 63205, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 63211, + 63284, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 63290, + 63362, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 63368, + 63440, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 63446, + 63518, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 63524, + 63598, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 63604, + 63676, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 63682, + 63756, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 63762, + 63833, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 63839, + 63910, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 63916, + 63965, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 63971, + 64045, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 64051, + 64124, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 64130, + 64203, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 64209, + 64257, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 64263, + 64336, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 64342, + 64390, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 64396, + 64468, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 64474, + 64523, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 64529, + 64600, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 64606, + 64655, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 64661, + 64733, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.367, + "y": 0.212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 64739, + 64810, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4708, + "y": 0.4905, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 64816, + 64887, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 64893, + 64966, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 64972, + 65044, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 65050, + 65122, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 65128, + 65200, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 65206, + 65280, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 65286, + 65358, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 65364, + 65438, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 65444, + 65515, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 65521, + 65592, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 65598, + 65647, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 65653, + 65727, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 65733, + 65806, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 65812, + 65885, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 65891, + 65939, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 65945, + 66018, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66024, + 66072, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66078, + 66150, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66156, + 66205, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66211, + 66282, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66288, + 66337, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.883, + "y": 0.6997, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66343, + 66416, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66422, + 66493, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66499, + 66571, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6716, + "y": -0.9606, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66577, + 66651, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0103, + "y": -0.3734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66657, + 66730, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1036, + "y": -0.4229, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66736, + 66808, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.452, + "y": -0.1123, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66814, + 66886, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8821, + "y": -0.7155, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66892, + 66941, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9195, + "y": 0.2692, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66947, + 67018, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7099, + "y": 0.1171, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 67024, + 67096, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.3788, + "y": 0.7107, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 67102, + 67176, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2973, + "y": -0.0665, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 67182, + 67254, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2297, + "y": -0.7602, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 67260, + 67332, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6357, + "y": 0.1946, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 67338, + 67387, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5721, + "y": 0.2889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 67393, + 67466, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.958, + "y": -0.0224, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 67472, + 67543, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3299, + "y": -0.8354, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 67549, + 67620, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7435, + "y": -0.792, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 67626, + 67675, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9936, + "y": 0.9043, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 67681, + 67752, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.5036, + "y": 0.5151, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 67758, + 67807, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5526, + "y": 0.7613, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 67813, + 67884, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8593, + "y": 0.0841, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 67890, + 67961, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8181, + "y": -0.9035, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 67967, + 68039, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3166, + "y": -0.2419, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 68045, + 68119, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4439, + "y": -0.2591, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 68125, + 68198, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6605, + "y": -0.4036, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 68204, + 68276, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.717, + "y": 0.2345, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 68282, + 68355, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2568, + "y": -0.4503, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 68361, + 68432, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6752, + "y": -0.9709, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 68438, + 68509, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.569, + "y": 0.5919, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 68515, + 68586, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8328, + "y": 0.4677, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 68592, + 68665, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8111, + "y": -0.4181, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 68671, + 68743, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0381, + "y": 0.2566, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 68749, + 68821, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.2395, + "y": 0.4369, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 68827, + 68899, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1628, + "y": 0.8064, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 68905, + 68979, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0897, + "y": -0.0889, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 68985, + 69057, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9203, + "y": -0.1734, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 69063, + 69137, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0017, + "y": -0.5179, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 69143, + 69214, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6206, + "y": -0.8733, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 69220, + 69291, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.7776, + "y": 0.7603, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 69297, + 69346, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5439, + "y": 0.8449, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 69352, + 69426, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1304, + "y": 0.0121, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 69432, + 69505, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1656, + "y": -0.2078, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 69511, + 69584, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0963, + "y": -0.0542, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 69590, + 69638, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9021, + "y": 0.3959, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 69644, + 69717, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.28, + "y": -0.1778, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 69723, + 69771, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5236, + "y": 0.6943, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 69777, + 69849, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3914, + "y": -0.784, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 69855, + 69904, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8414, + "y": 0.5396, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 69910, + 69981, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6138, + "y": 0.2212, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 69987, + 70060, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0958, + "y": -0.7534, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 70066, + 70139, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1725, + "y": -0.7669, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 70145, + 70194, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8945, + "y": 0.6093, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 70200, + 70273, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4129, + "y": -0.4153, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 70279, + 70350, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.517, + "y": -0.9086, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 70356, + 70427, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6752, + "y": -0.9709, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 70433, + 70504, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.569, + "y": 0.5919, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 70510, + 70581, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9464, + "y": -0.2685, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 70587, + 70636, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5242, + "y": 0.9011, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 70642, + 70715, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1426, + "y": -0.5194, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 70721, + 70793, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4287, + "y": -0.4224, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 70799, + 70872, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0932, + "y": -0.9063, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 70878, + 70949, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.2768, + "y": 0.6816, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 70955, + 71026, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9797, + "y": -0.0822, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 71032, + 71103, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8667, + "y": -0.3011, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 71109, + 71180, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5374, + "y": 0.0203, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 71186, + 71257, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9332, + "y": -0.6228, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 71263, + 71336, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1805, + "y": -0.3689, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 71342, + 71391, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5384, + "y": 0.2378, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 71397, + 71469, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3904, + "y": 0.1427, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 71475, + 71546, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0978, + "y": 0.9908, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 71552, + 71623, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.5287, + "y": -0.7925, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 71629, + 71700, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.379, + "y": 0.124, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 71706, + 71777, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.9485, + "y": 0.673, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 71783, + 71855, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7452, + "y": -0.2132, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 71861, + 71933, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1873, + "y": -0.1596, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 71939, + 72012, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0573, + "y": -0.5436, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 72018, + 72091, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0958, + "y": -0.7534, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 72097, + 72170, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.1725, + "y": -0.7669, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 72176, + 72225, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8945, + "y": 0.6093, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 72231, + 72302, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6239, + "y": 0.4054, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 72308, + 72380, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1379, + "y": -0.4787, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 72386, + 72457, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.9517, + "y": 0.862, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 72463, + 72512, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9399, + "y": 0.6326, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 72518, + 72591, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8632, + "y": 0.0162, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 72597, + 72669, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1917, + "y": -0.4916, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 72675, + 72748, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8644, + "y": -0.1143, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 72754, + 72828, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0291, + "y": -0.5214, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 72834, + 72905, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8713, + "y": 0.7866, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 72911, + 72960, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8843, + "y": -0.1825, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 72966, + 73037, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6978, + "y": 0.0441, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 73043, + 73118, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4806, + "y": -0.0285, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 73124, + 73197, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.4128, + "y": -0.4494, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 73203, + 73251, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.7911, + "y": 0.8934, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 73257, + 73328, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6507, + "y": -0.689, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 73334, + 73406, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1049, + "y": -0.5467, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 73412, + 73484, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.5761, + "y": -0.264, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 73490, + 73561, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3983, + "y": 0.8037, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 73567, + 73616, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.6738, + "y": -0.9184, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 73622, + 73694, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.8599, + "y": -0.9499, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 73700, + 73771, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.6285, + "y": -0.5187, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 73777, + 73848, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.3222, + "y": 0.2462, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 73854, + 73926, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.1975, + "y": -0.7529, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 73932, + 74005, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.4318, + "y": 0.1895, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74011, + 74082, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.8715, + "y": -0.7216, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74088, + 74096, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74088, + 74096, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 5.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74102, + 74115, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/neg_xz_plane/artifact_commands.snap b/src/wasm-lib/kcl/tests/neg_xz_plane/artifact_commands.snap new file mode 100644 index 000000000..18c434b24 --- /dev/null +++ b/src/wasm-lib/kcl/tests/neg_xz_plane/artifact_commands.snap @@ -0,0 +1,581 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands neg_xz_plane.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10, + 30, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 36, + 61, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 36, + 61, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 36, + 61, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 67, + 88, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 100.0, + "y": 100.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 94, + 113, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 100.0, + "y": 0.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 119, + 127, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 119, + 127, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 133, + 150, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 133, + 150, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 12.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 133, + 150, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 133, + 150, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 133, + 150, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 133, + 150, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 133, + 150, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 133, + 150, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 133, + 150, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 133, + 150, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 133, + 150, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/non_string_key_of_object/artifact_commands.snap b/src/wasm-lib/kcl/tests/non_string_key_of_object/artifact_commands.snap new file mode 100644 index 000000000..9faa7f04d --- /dev/null +++ b/src/wasm-lib/kcl/tests/non_string_key_of_object/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands non_string_key_of_object.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/object_prop_not_found/artifact_commands.snap b/src/wasm-lib/kcl/tests/object_prop_not_found/artifact_commands.snap new file mode 100644 index 000000000..4f678fcbc --- /dev/null +++ b/src/wasm-lib/kcl/tests/object_prop_not_found/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands object_prop_not_found.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_circle_three_point0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_circle_three_point0.png new file mode 100644 index 000000000..ca4803aa1 Binary files /dev/null and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_circle_three_point0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_helix0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_helix0.png index 139eabe76..d26d120b6 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_helix0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_helix0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_helix1.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_helix1.png new file mode 100644 index 000000000..6148ae432 Binary files /dev/null and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_helix1.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_helix_revolutions0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_helix_revolutions0.png new file mode 100644 index 000000000..139eabe76 Binary files /dev/null and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_helix_revolutions0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_mirror_2d0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_mirror_2d0.png index 48a988c6b..d6fb873f9 100644 Binary files a/src/wasm-lib/kcl/tests/outputs/serial_test_example_mirror_2d0.png and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_mirror_2d0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_pop0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_pop0.png new file mode 100644 index 000000000..6148ae432 Binary files /dev/null and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_pop0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_sweep1.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_sweep1.png new file mode 100644 index 000000000..d26d120b6 Binary files /dev/null and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_sweep1.png differ diff --git a/src/wasm-lib/kcl/tests/parametric/artifact_commands.snap b/src/wasm-lib/kcl/tests/parametric/artifact_commands.snap new file mode 100644 index 000000000..112cf527a --- /dev/null +++ b/src/wasm-lib/kcl/tests/parametric/artifact_commands.snap @@ -0,0 +1,728 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands parametric.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 228, + 247, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 253, + 278, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 253, + 278, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 253, + 278, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 284, + 302, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 5.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 308, + 326, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 8.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 332, + 356, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -0.1852, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 362, + 393, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -7.8148, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 399, + 430, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -4.8148, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 436, + 444, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 436, + 444, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 9.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 450, + 467, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/parametric_with_tan_arc/artifact_commands.snap b/src/wasm-lib/kcl/tests/parametric_with_tan_arc/artifact_commands.snap new file mode 100644 index 000000000..428ddfb68 --- /dev/null +++ b/src/wasm-lib/kcl/tests/parametric_with_tan_arc/artifact_commands.snap @@ -0,0 +1,824 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands parametric_with_tan_arc.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 239, + 260, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 239, + 260, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 239, + 260, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 239, + 260, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 266, + 290, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 8.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 296, + 347, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc", + "radius": 0.7236272269866327, + "offset": { + "unit": "degrees", + "value": 90.0 + } + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 353, + 379, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -9.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 385, + 409, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -0.3618, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 415, + 440, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 9.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 446, + 529, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc", + "radius": 0.36181361349331637, + "offset": { + "unit": "degrees", + "value": -90.0 + } + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 535, + 560, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -8.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 566, + 574, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 566, + 574, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 11.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 580, + 597, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/artifact_commands.snap b/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/artifact_commands.snap new file mode 100644 index 000000000..7e9e4b555 --- /dev/null +++ b/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/artifact_commands.snap @@ -0,0 +1,1033 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands pentagon_fillet_sugar.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 138, + 157, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 163, + 188, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 163, + 188, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 163, + 188, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 194, + 249, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 250.0, + "y": 433.0127, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 255, + 311, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -500.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 317, + 373, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 250.0, + "y": -433.0127, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 379, + 405, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 379, + 405, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 200.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 379, + 405, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 379, + 405, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 379, + 405, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 379, + 405, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 379, + 405, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 379, + 405, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 379, + 405, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 379, + 405, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 379, + 405, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 466, + 517, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 466, + 517, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 466, + 517, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": -120.0, + "y": 100.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 525, + 547, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": -200.0, + "y": 100.0 + }, + "radius": 80.0, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 555, + 563, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 606, + 628, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 606, + 628, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 100.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 606, + 628, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 606, + 628, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 606, + 628, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 606, + 628, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 606, + 628, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 713, + 745, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 634, + 765, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 5.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 634, + 765, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 5.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 466, + 517, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 466, + 517, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 466, + 517, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 280.0, + "y": 100.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 525, + 547, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 200.0, + "y": 100.0 + }, + "radius": 80.0, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 555, + 563, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 804, + 826, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 804, + 826, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 100.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 804, + 826, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 804, + 826, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 804, + 826, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 804, + 826, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 804, + 826, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 911, + 943, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 832, + 963, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 5.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 832, + 963, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 5.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/ast.snap b/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/ast.snap index 08b348720..443d9f097 100644 --- a/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/ast.snap +++ b/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/ast.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Result of parsing pentagon_fillet_sugar.kcl +snapshot_kind: text --- { "Ok": { @@ -85,7 +86,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, { "declaration": { - "end": 116, + "end": 114, "id": { "end": 54, "name": "circ", @@ -93,60 +94,60 @@ description: Result of parsing pentagon_fillet_sugar.kcl "type": "Identifier" }, "init": { - "end": 116, + "end": 114, "properties": [ { - "end": 76, + "end": 75, "key": { - "end": 72, - "name": "angle_start", + "end": 71, + "name": "angleStart", "start": 61, "type": "Identifier" }, "start": 61, "type": "ObjectProperty", "value": { - "end": 76, + "end": 75, "raw": "0", - "start": 75, + "start": 74, "type": "Literal", "type": "Literal", "value": 0.0 } }, { - "end": 95, + "end": 93, "key": { - "end": 89, - "name": "angle_end", - "start": 80, + "end": 87, + "name": "angleEnd", + "start": 79, "type": "Identifier" }, - "start": 80, + "start": 79, "type": "ObjectProperty", "value": { - "end": 95, + "end": 93, "raw": "360", - "start": 92, + "start": 90, "type": "Literal", "type": "Literal", "value": 360.0 } }, { - "end": 114, + "end": 112, "key": { - "end": 105, + "end": 103, "name": "radius", - "start": 99, + "start": 97, "type": "Identifier" }, - "start": 99, + "start": 97, "type": "ObjectProperty", "value": { - "end": 114, + "end": 112, "name": "radius", - "start": 108, + "start": 106, "type": "Identifier", "type": "Identifier" } @@ -159,7 +160,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "start": 50, "type": "VariableDeclarator" }, - "end": 116, + "end": 114, "kind": "const", "start": 50, "type": "VariableDeclaration", @@ -167,37 +168,37 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, { "declaration": { - "end": 135, + "end": 133, "id": { - "end": 129, + "end": 127, "name": "triangleLen", - "start": 118, + "start": 116, "type": "Identifier" }, "init": { - "end": 135, + "end": 133, "raw": "500", - "start": 132, + "start": 130, "type": "Literal", "type": "Literal", "value": 500.0 }, - "start": 118, + "start": 116, "type": "VariableDeclarator" }, - "end": 135, + "end": 133, "kind": "const", - "start": 118, + "start": 116, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "declaration": { - "end": 407, + "end": 405, "id": { - "end": 137, + "end": 135, "name": "p", - "start": 136, + "start": 134, "type": "Identifier" }, "init": { @@ -205,22 +206,22 @@ description: Result of parsing pentagon_fillet_sugar.kcl { "arguments": [ { - "end": 158, + "end": 156, "raw": "'XY'", - "start": 154, + "start": 152, "type": "Literal", "type": "Literal", "value": "XY" } ], "callee": { - "end": 153, + "end": 151, "name": "startSketchOn", - "start": 140, + "start": 138, "type": "Identifier" }, - "end": 159, - "start": 140, + "end": 157, + "start": 138, "type": "CallExpression", "type": "CallExpression" }, @@ -229,310 +230,310 @@ description: Result of parsing pentagon_fillet_sugar.kcl { "elements": [ { - "end": 182, + "end": 180, "raw": "0", - "start": 181, + "start": 179, "type": "Literal", "type": "Literal", "value": 0.0 }, { - "end": 185, + "end": 183, "raw": "0", - "start": 184, + "start": 182, "type": "Literal", "type": "Literal", "value": 0.0 } ], - "end": 186, - "start": 180, + "end": 184, + "start": 178, "type": "ArrayExpression", "type": "ArrayExpression" }, { - "end": 189, - "start": 188, + "end": 187, + "start": 186, "type": "PipeSubstitution", "type": "PipeSubstitution" } ], "callee": { - "end": 179, + "end": 177, "name": "startProfileAt", - "start": 165, + "start": 163, "type": "Identifier" }, - "end": 190, - "start": 165, + "end": 188, + "start": 163, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { - "end": 243, + "end": 241, "properties": [ { - "end": 219, + "end": 217, "key": { - "end": 214, + "end": 212, "name": "angle", - "start": 209, + "start": 207, "type": "Identifier" }, - "start": 209, + "start": 207, "type": "ObjectProperty", "value": { - "end": 219, + "end": 217, "raw": "60", - "start": 217, + "start": 215, "type": "Literal", "type": "Literal", "value": 60.0 } }, { - "end": 241, + "end": 239, "key": { - "end": 227, + "end": 225, "name": "length", - "start": 221, + "start": 219, "type": "Identifier" }, - "start": 221, + "start": 219, "type": "ObjectProperty", "value": { - "end": 241, + "end": 239, "name": "triangleLen", - "start": 230, + "start": 228, "type": "Identifier", "type": "Identifier" } } ], - "start": 207, + "start": 205, "type": "ObjectExpression", "type": "ObjectExpression" }, { - "end": 246, - "start": 245, + "end": 244, + "start": 243, "type": "PipeSubstitution", "type": "PipeSubstitution" }, { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "type": "TagDeclarator", "value": "a" } ], "callee": { - "end": 206, + "end": 204, "name": "angledLine", - "start": 196, + "start": 194, "type": "Identifier" }, - "end": 251, - "start": 196, + "end": 249, + "start": 194, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { - "end": 305, + "end": 303, "properties": [ { - "end": 281, + "end": 279, "key": { - "end": 275, + "end": 273, "name": "angle", - "start": 270, + "start": 268, "type": "Identifier" }, - "start": 270, + "start": 268, "type": "ObjectProperty", "value": { - "end": 281, + "end": 279, "raw": "180", - "start": 278, + "start": 276, "type": "Literal", "type": "Literal", "value": 180.0 } }, { - "end": 303, + "end": 301, "key": { - "end": 289, + "end": 287, "name": "length", - "start": 283, + "start": 281, "type": "Identifier" }, - "start": 283, + "start": 281, "type": "ObjectProperty", "value": { - "end": 303, + "end": 301, "name": "triangleLen", - "start": 292, + "start": 290, "type": "Identifier", "type": "Identifier" } } ], - "start": 268, + "start": 266, "type": "ObjectExpression", "type": "ObjectExpression" }, { - "end": 308, - "start": 307, + "end": 306, + "start": 305, "type": "PipeSubstitution", "type": "PipeSubstitution" }, { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "type": "TagDeclarator", "value": "b" } ], "callee": { - "end": 267, + "end": 265, "name": "angledLine", - "start": 257, + "start": 255, "type": "Identifier" }, - "end": 313, - "start": 257, + "end": 311, + "start": 255, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { - "end": 367, + "end": 365, "properties": [ { - "end": 343, + "end": 341, "key": { - "end": 337, + "end": 335, "name": "angle", - "start": 332, + "start": 330, "type": "Identifier" }, - "start": 332, + "start": 330, "type": "ObjectProperty", "value": { - "end": 343, + "end": 341, "raw": "300", - "start": 340, + "start": 338, "type": "Literal", "type": "Literal", "value": 300.0 } }, { - "end": 365, + "end": 363, "key": { - "end": 351, + "end": 349, "name": "length", - "start": 345, + "start": 343, "type": "Identifier" }, - "start": 345, + "start": 343, "type": "ObjectProperty", "value": { - "end": 365, + "end": 363, "name": "triangleLen", - "start": 354, + "start": 352, "type": "Identifier", "type": "Identifier" } } ], - "start": 330, + "start": 328, "type": "ObjectExpression", "type": "ObjectExpression" }, { - "end": 370, - "start": 369, + "end": 368, + "start": 367, "type": "PipeSubstitution", "type": "PipeSubstitution" }, { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "type": "TagDeclarator", "value": "c" } ], "callee": { - "end": 329, + "end": 327, "name": "angledLine", - "start": 319, + "start": 317, "type": "Identifier" }, - "end": 375, - "start": 319, + "end": 373, + "start": 317, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { - "end": 403, + "end": 401, "name": "triangleHeight", - "start": 389, + "start": 387, "type": "Identifier", "type": "Identifier" }, { - "end": 406, - "start": 405, + "end": 404, + "start": 403, "type": "PipeSubstitution", "type": "PipeSubstitution" } ], "callee": { - "end": 388, + "end": 386, "name": "extrude", - "start": 381, + "start": 379, "type": "Identifier" }, - "end": 407, - "start": 381, + "end": 405, + "start": 379, "type": "CallExpression", "type": "CallExpression" } ], - "end": 407, - "start": 140, + "end": 405, + "start": 138, "type": "PipeExpression", "type": "PipeExpression" }, - "start": 136, + "start": 134, "type": "VariableDeclarator" }, - "end": 407, + "end": 405, "kind": "const", - "start": 136, + "start": 134, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "declaration": { - "end": 567, + "end": 565, "id": { - "end": 417, + "end": 415, "name": "circl", - "start": 412, + "start": 410, "type": "Identifier" }, "init": { @@ -544,28 +545,28 @@ description: Result of parsing pentagon_fillet_sugar.kcl { "arguments": [ { - "end": 453, + "end": 451, "name": "p", - "start": 452, + "start": 450, "type": "Identifier", "type": "Identifier" }, { - "end": 459, + "end": 457, "name": "face", - "start": 455, + "start": 453, "type": "Identifier", "type": "Identifier" } ], "callee": { - "end": 451, + "end": 449, "name": "startSketchOn", - "start": 438, + "start": 436, "type": "Identifier" }, - "end": 460, - "start": 438, + "end": 458, + "start": 436, "type": "CallExpression", "type": "CallExpression" }, @@ -574,342 +575,342 @@ description: Result of parsing pentagon_fillet_sugar.kcl { "elements": [ { - "end": 494, + "end": 492, "left": { - "end": 485, + "end": 483, "name": "x", - "start": 484, + "start": 482, "type": "Identifier", "type": "Identifier" }, "operator": "+", "right": { - "end": 494, + "end": 492, "name": "radius", - "start": 488, + "start": 486, "type": "Identifier", "type": "Identifier" }, - "start": 484, + "start": 482, "type": "BinaryExpression", "type": "BinaryExpression" }, { - "end": 514, + "end": 512, "left": { - "end": 510, + "end": 508, "name": "triangleHeight", - "start": 496, + "start": 494, "type": "Identifier", "type": "Identifier" }, "operator": "/", "right": { - "end": 514, + "end": 512, "raw": "2", - "start": 513, + "start": 511, "type": "Literal", "type": "Literal", "value": 2.0 }, - "start": 496, + "start": 494, "type": "BinaryExpression", "type": "BinaryExpression" } ], - "end": 515, - "start": 483, + "end": 513, + "start": 481, "type": "ArrayExpression", "type": "ArrayExpression" }, { - "end": 518, - "start": 517, + "end": 516, + "start": 515, "type": "PipeSubstitution", "type": "PipeSubstitution" } ], "callee": { - "end": 482, + "end": 480, "name": "startProfileAt", - "start": 468, + "start": 466, "type": "Identifier" }, - "end": 519, - "start": 468, + "end": 517, + "start": 466, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { - "end": 535, + "end": 533, "name": "circ", - "start": 531, + "start": 529, "type": "Identifier", "type": "Identifier" }, { - "end": 538, - "start": 537, + "end": 536, + "start": 535, "type": "PipeSubstitution", "type": "PipeSubstitution" }, { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "type": "TagDeclarator", "value": "arc_tag" } ], "callee": { - "end": 530, + "end": 528, "name": "arc", - "start": 527, + "start": 525, "type": "Identifier" }, - "end": 549, - "start": 527, + "end": 547, + "start": 525, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { - "end": 564, - "start": 563, + "end": 562, + "start": 561, "type": "PipeSubstitution", "type": "PipeSubstitution" } ], "callee": { - "end": 562, + "end": 560, "name": "close", - "start": 557, + "start": 555, "type": "Identifier" }, - "end": 565, - "start": 557, + "end": 563, + "start": 555, "type": "CallExpression", "type": "CallExpression" } ], - "end": 565, - "start": 438, + "end": 563, + "start": 436, "type": "PipeExpression", "type": "PipeExpression" }, - "end": 565, - "start": 431, + "end": 563, + "start": 429, "type": "ReturnStatement", "type": "ReturnStatement" } ], - "end": 567, - "start": 427 + "end": 565, + "start": 425 }, - "end": 567, + "end": 565, "params": [ { "type": "Parameter", "identifier": { - "end": 419, + "end": 417, "name": "x", - "start": 418, + "start": 416, "type": "Identifier" } }, { "type": "Parameter", "identifier": { - "end": 425, + "end": 423, "name": "face", - "start": 421, + "start": 419, "type": "Identifier" } } ], - "start": 417, + "start": 415, "type": "FunctionExpression", "type": "FunctionExpression" }, - "start": 412, + "start": 410, "type": "VariableDeclarator" }, - "end": 567, + "end": 565, "kind": "fn", - "start": 409, + "start": 407, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "declaration": { - "end": 588, + "end": 586, "id": { - "end": 571, + "end": 569, "name": "c1", - "start": 569, + "start": 567, "type": "Identifier" }, "init": { "arguments": [ { "argument": { - "end": 584, + "end": 582, "raw": "200", - "start": 581, + "start": 579, "type": "Literal", "type": "Literal", "value": 200.0 }, - "end": 584, + "end": 582, "operator": "-", - "start": 580, + "start": 578, "type": "UnaryExpression", "type": "UnaryExpression" }, { - "end": 587, + "end": 585, "name": "c", - "start": 586, + "start": 584, "type": "Identifier", "type": "Identifier" } ], "callee": { - "end": 579, + "end": 577, "name": "circl", - "start": 574, + "start": 572, "type": "Identifier" }, - "end": 588, - "start": 574, + "end": 586, + "start": 572, "type": "CallExpression", "type": "CallExpression" }, - "start": 569, + "start": 567, "type": "VariableDeclarator" }, - "end": 588, + "end": 586, "kind": "const", - "start": 569, + "start": 567, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "declaration": { - "end": 767, + "end": 765, "id": { - "end": 597, + "end": 595, "name": "plumbus1", - "start": 589, + "start": 587, "type": "Identifier" }, "init": { "body": [ { - "end": 602, + "end": 600, "name": "c1", - "start": 600, + "start": 598, "type": "Identifier", "type": "Identifier" }, { "arguments": [ { - "end": 626, + "end": 624, "name": "plumbusLen", - "start": 616, + "start": 614, "type": "Identifier", "type": "Identifier" }, { - "end": 629, - "start": 628, + "end": 627, + "start": 626, "type": "PipeSubstitution", "type": "PipeSubstitution" } ], "callee": { - "end": 615, + "end": 613, "name": "extrude", - "start": 608, + "start": 606, "type": "Identifier" }, - "end": 630, - "start": 608, + "end": 628, + "start": 606, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { - "end": 763, + "end": 761, "properties": [ { - "end": 662, + "end": 660, "key": { - "end": 658, + "end": 656, "name": "radius", - "start": 652, + "start": 650, "type": "Identifier" }, - "start": 652, + "start": 650, "type": "ObjectProperty", "value": { - "end": 662, + "end": 660, "raw": "5", - "start": 661, + "start": 659, "type": "Literal", "type": "Literal", "value": 5.0 } }, { - "end": 756, + "end": 754, "key": { - "end": 675, + "end": 673, "name": "tags", - "start": 671, + "start": 669, "type": "Identifier" }, - "start": 671, + "start": 669, "type": "ObjectProperty", "value": { "elements": [ { "computed": false, - "end": 704, + "end": 702, "object": { "computed": false, - "end": 696, + "end": 694, "object": { - "end": 691, + "end": 689, "name": "c1", - "start": 689, + "start": 687, "type": "Identifier", "type": "Identifier" }, "property": { - "end": 696, + "end": 694, "name": "tags", - "start": 692, + "start": 690, "type": "Identifier", "type": "Identifier" }, - "start": 689, + "start": 687, "type": "MemberExpression", "type": "MemberExpression" }, "property": { - "end": 704, + "end": 702, "name": "arc_tag", - "start": 697, + "start": 695, "type": "Identifier", "type": "Identifier" }, - "start": 689, + "start": 687, "type": "MemberExpression", "type": "MemberExpression" }, @@ -917,256 +918,256 @@ description: Result of parsing pentagon_fillet_sugar.kcl "arguments": [ { "computed": false, - "end": 746, + "end": 744, "object": { "computed": false, - "end": 738, + "end": 736, "object": { - "end": 733, + "end": 731, "name": "c1", - "start": 731, + "start": 729, "type": "Identifier", "type": "Identifier" }, "property": { - "end": 738, + "end": 736, "name": "tags", - "start": 734, + "start": 732, "type": "Identifier", "type": "Identifier" }, - "start": 731, + "start": 729, "type": "MemberExpression", "type": "MemberExpression" }, "property": { - "end": 746, + "end": 744, "name": "arc_tag", - "start": 739, + "start": 737, "type": "Identifier", "type": "Identifier" }, - "start": 731, + "start": 729, "type": "MemberExpression", "type": "MemberExpression" } ], "callee": { - "end": 730, + "end": 728, "name": "getOppositeEdge", - "start": 715, + "start": 713, "type": "Identifier" }, - "end": 747, - "start": 715, + "end": 745, + "start": 713, "type": "CallExpression", "type": "CallExpression" } ], - "end": 756, - "start": 678, + "end": 754, + "start": 676, "type": "ArrayExpression", "type": "ArrayExpression" } } ], - "start": 643, + "start": 641, "type": "ObjectExpression", "type": "ObjectExpression" }, { - "end": 766, - "start": 765, + "end": 764, + "start": 763, "type": "PipeSubstitution", "type": "PipeSubstitution" } ], "callee": { - "end": 642, + "end": 640, "name": "fillet", - "start": 636, + "start": 634, "type": "Identifier" }, - "end": 767, - "start": 636, + "end": 765, + "start": 634, "type": "CallExpression", "type": "CallExpression" } ], - "end": 767, - "start": 600, + "end": 765, + "start": 598, "type": "PipeExpression", "type": "PipeExpression" }, - "start": 589, + "start": 587, "type": "VariableDeclarator" }, - "end": 767, + "end": 765, "kind": "const", - "start": 589, + "start": 587, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "declaration": { - "end": 786, + "end": 784, "id": { - "end": 770, + "end": 768, "name": "c2", - "start": 768, + "start": 766, "type": "Identifier" }, "init": { "arguments": [ { - "end": 782, + "end": 780, "raw": "200", - "start": 779, + "start": 777, "type": "Literal", "type": "Literal", "value": 200.0 }, { - "end": 785, + "end": 783, "name": "a", - "start": 784, + "start": 782, "type": "Identifier", "type": "Identifier" } ], "callee": { - "end": 778, + "end": 776, "name": "circl", - "start": 773, + "start": 771, "type": "Identifier" }, - "end": 786, - "start": 773, + "end": 784, + "start": 771, "type": "CallExpression", "type": "CallExpression" }, - "start": 768, + "start": 766, "type": "VariableDeclarator" }, - "end": 786, + "end": 784, "kind": "const", - "start": 768, + "start": 766, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "declaration": { - "end": 965, + "end": 963, "id": { - "end": 795, + "end": 793, "name": "plumbus0", - "start": 787, + "start": 785, "type": "Identifier" }, "init": { "body": [ { - "end": 800, + "end": 798, "name": "c2", - "start": 798, + "start": 796, "type": "Identifier", "type": "Identifier" }, { "arguments": [ { - "end": 824, + "end": 822, "name": "plumbusLen", - "start": 814, + "start": 812, "type": "Identifier", "type": "Identifier" }, { - "end": 827, - "start": 826, + "end": 825, + "start": 824, "type": "PipeSubstitution", "type": "PipeSubstitution" } ], "callee": { - "end": 813, + "end": 811, "name": "extrude", - "start": 806, + "start": 804, "type": "Identifier" }, - "end": 828, - "start": 806, + "end": 826, + "start": 804, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { - "end": 961, + "end": 959, "properties": [ { - "end": 860, + "end": 858, "key": { - "end": 856, + "end": 854, "name": "radius", - "start": 850, + "start": 848, "type": "Identifier" }, - "start": 850, + "start": 848, "type": "ObjectProperty", "value": { - "end": 860, + "end": 858, "raw": "5", - "start": 859, + "start": 857, "type": "Literal", "type": "Literal", "value": 5.0 } }, { - "end": 954, + "end": 952, "key": { - "end": 873, + "end": 871, "name": "tags", - "start": 869, + "start": 867, "type": "Identifier" }, - "start": 869, + "start": 867, "type": "ObjectProperty", "value": { "elements": [ { "computed": false, - "end": 902, + "end": 900, "object": { "computed": false, - "end": 894, + "end": 892, "object": { - "end": 889, + "end": 887, "name": "c2", - "start": 887, + "start": 885, "type": "Identifier", "type": "Identifier" }, "property": { - "end": 894, + "end": 892, "name": "tags", - "start": 890, + "start": 888, "type": "Identifier", "type": "Identifier" }, - "start": 887, + "start": 885, "type": "MemberExpression", "type": "MemberExpression" }, "property": { - "end": 902, + "end": 900, "name": "arc_tag", - "start": 895, + "start": 893, "type": "Identifier", "type": "Identifier" }, - "start": 887, + "start": 885, "type": "MemberExpression", "type": "MemberExpression" }, @@ -1174,104 +1175,104 @@ description: Result of parsing pentagon_fillet_sugar.kcl "arguments": [ { "computed": false, - "end": 944, + "end": 942, "object": { "computed": false, - "end": 936, + "end": 934, "object": { - "end": 931, + "end": 929, "name": "c2", - "start": 929, + "start": 927, "type": "Identifier", "type": "Identifier" }, "property": { - "end": 936, + "end": 934, "name": "tags", - "start": 932, + "start": 930, "type": "Identifier", "type": "Identifier" }, - "start": 929, + "start": 927, "type": "MemberExpression", "type": "MemberExpression" }, "property": { - "end": 944, + "end": 942, "name": "arc_tag", - "start": 937, + "start": 935, "type": "Identifier", "type": "Identifier" }, - "start": 929, + "start": 927, "type": "MemberExpression", "type": "MemberExpression" } ], "callee": { - "end": 928, + "end": 926, "name": "getOppositeEdge", - "start": 913, + "start": 911, "type": "Identifier" }, - "end": 945, - "start": 913, + "end": 943, + "start": 911, "type": "CallExpression", "type": "CallExpression" } ], - "end": 954, - "start": 876, + "end": 952, + "start": 874, "type": "ArrayExpression", "type": "ArrayExpression" } } ], - "start": 841, + "start": 839, "type": "ObjectExpression", "type": "ObjectExpression" }, { - "end": 964, - "start": 963, + "end": 962, + "start": 961, "type": "PipeSubstitution", "type": "PipeSubstitution" } ], "callee": { - "end": 840, + "end": 838, "name": "fillet", - "start": 834, + "start": 832, "type": "Identifier" }, - "end": 965, - "start": 834, + "end": 963, + "start": 832, "type": "CallExpression", "type": "CallExpression" } ], - "end": 965, - "start": 798, + "end": 963, + "start": 796, "type": "PipeExpression", "type": "PipeExpression" }, - "start": 787, + "start": 785, "type": "VariableDeclarator" }, - "end": 965, + "end": 963, "kind": "const", - "start": 787, + "start": 785, "type": "VariableDeclaration", "type": "VariableDeclaration" } ], - "end": 966, + "end": 964, "nonCodeMeta": { "nonCodeNodes": { "3": [ { - "end": 118, - "start": 116, + "end": 116, + "start": 114, "type": "NonCodeNode", "value": { "type": "newLine" @@ -1280,8 +1281,8 @@ description: Result of parsing pentagon_fillet_sugar.kcl ], "5": [ { - "end": 409, - "start": 407, + "end": 407, + "start": 405, "type": "NonCodeNode", "value": { "type": "newLine" @@ -1290,8 +1291,8 @@ description: Result of parsing pentagon_fillet_sugar.kcl ], "6": [ { - "end": 569, - "start": 567, + "end": 567, + "start": 565, "type": "NonCodeNode", "value": { "type": "newLine" diff --git a/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/input.kcl b/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/input.kcl index 52730a9e4..12481f967 100644 --- a/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/input.kcl +++ b/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/input.kcl @@ -2,8 +2,8 @@ triangleHeight = 200 plumbusLen = 100 radius = 80 circ = { - angle_start = 0, - angle_end = 360, + angleStart = 0, + angleEnd = 360, radius = radius } diff --git a/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/ops.snap b/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/ops.snap index 492beead7..361fa00a8 100644 --- a/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/ops.snap +++ b/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/ops.snap @@ -8,16 +8,16 @@ snapshot_kind: text "labeledArgs": { "data": { "sourceRange": [ - 154, - 158, + 152, + 156, 0 ] } }, "name": "startSketchOn", "sourceRange": [ - 140, - 159, + 138, + 157, 0 ], "type": "StdLibCall", @@ -27,23 +27,23 @@ snapshot_kind: text "labeledArgs": { "length": { "sourceRange": [ - 389, + 387, + 401, + 0 + ] + }, + "sketch_set": { + "sourceRange": [ 403, - 0 - ] - }, - "sketch_set": { - "sourceRange": [ - 405, - 406, + 404, 0 ] } }, "name": "extrude", "sourceRange": [ - 381, - 407, + 379, + 405, 0 ], "type": "StdLibCall", @@ -53,15 +53,15 @@ snapshot_kind: text "type": "UserDefinedFunctionCall", "name": "circl", "functionSourceRange": [ - 417, - 567, + 415, + 565, 0 ], "unlabeledArg": null, "labeledArgs": {}, "sourceRange": [ - 574, - 588, + 572, + 586, 0 ] }, @@ -69,23 +69,23 @@ snapshot_kind: text "labeledArgs": { "data": { "sourceRange": [ - 452, - 453, + 450, + 451, 0 ] }, "tag": { "sourceRange": [ - 455, - 459, + 453, + 457, 0 ] } }, "name": "startSketchOn", "sourceRange": [ - 438, - 460, + 436, + 458, 0 ], "type": "StdLibCall", @@ -98,23 +98,23 @@ snapshot_kind: text "labeledArgs": { "length": { "sourceRange": [ - 616, + 614, + 624, + 0 + ] + }, + "sketch_set": { + "sourceRange": [ 626, - 0 - ] - }, - "sketch_set": { - "sourceRange": [ - 628, - 629, + 627, 0 ] } }, "name": "extrude", "sourceRange": [ - 608, - 630, + 606, + 628, 0 ], "type": "StdLibCall", @@ -124,23 +124,23 @@ snapshot_kind: text "labeledArgs": { "data": { "sourceRange": [ - 643, - 763, + 641, + 761, 0 ] }, "solid": { "sourceRange": [ - 765, - 766, + 763, + 764, 0 ] } }, "name": "fillet", "sourceRange": [ - 636, - 767, + 634, + 765, 0 ], "type": "StdLibCall", @@ -150,15 +150,15 @@ snapshot_kind: text "type": "UserDefinedFunctionCall", "name": "circl", "functionSourceRange": [ - 417, - 567, + 415, + 565, 0 ], "unlabeledArg": null, "labeledArgs": {}, "sourceRange": [ - 773, - 786, + 771, + 784, 0 ] }, @@ -166,23 +166,23 @@ snapshot_kind: text "labeledArgs": { "data": { "sourceRange": [ - 452, - 453, + 450, + 451, 0 ] }, "tag": { "sourceRange": [ - 455, - 459, + 453, + 457, 0 ] } }, "name": "startSketchOn", "sourceRange": [ - 438, - 460, + 436, + 458, 0 ], "type": "StdLibCall", @@ -195,23 +195,23 @@ snapshot_kind: text "labeledArgs": { "length": { "sourceRange": [ - 814, - 824, + 812, + 822, 0 ] }, "sketch_set": { "sourceRange": [ - 826, - 827, + 824, + 825, 0 ] } }, "name": "extrude", "sourceRange": [ - 806, - 828, + 804, + 826, 0 ], "type": "StdLibCall", @@ -221,23 +221,23 @@ snapshot_kind: text "labeledArgs": { "data": { "sourceRange": [ - 841, - 961, + 839, + 959, 0 ] }, "solid": { "sourceRange": [ - 963, - 964, + 961, + 962, 0 ] } }, "name": "fillet", "sourceRange": [ - 834, - 965, + 832, + 963, 0 ], "type": "StdLibCall", diff --git a/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/program_memory.snap b/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/program_memory.snap index 7b6fcbc1d..db3725725 100644 --- a/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/program_memory.snap +++ b/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/program_memory.snap @@ -39,8 +39,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ] }, @@ -49,8 +49,8 @@ snapshot_kind: text 0.0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -64,13 +64,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -80,8 +80,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 246, 248, - 250, 0 ] } @@ -99,8 +99,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 527, - 549, + 525, + 547, 0 ] }, @@ -115,8 +115,8 @@ snapshot_kind: text ], "radius": 80.0, "tag": { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "value": "arc_tag" }, @@ -130,13 +130,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 527, - 549, + 525, + 547, 0 ], "tag": { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "value": "arc_tag" }, @@ -146,8 +146,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 540, - 548, + 538, + 546, 0 ] } @@ -165,8 +165,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ] }, @@ -175,8 +175,8 @@ snapshot_kind: text 433.0127018922193 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -190,13 +190,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -206,8 +206,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 308, 310, - 312, 0 ] } @@ -225,8 +225,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ] }, @@ -235,8 +235,8 @@ snapshot_kind: text 433.01270189221935 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -250,13 +250,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -266,8 +266,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 370, 372, - 374, 0 ] } @@ -283,8 +283,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 527, - 549, + 525, + 547, 0 ] }, @@ -299,8 +299,8 @@ snapshot_kind: text ], "radius": 80.0, "tag": { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "value": "arc_tag" }, @@ -314,8 +314,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 557, - 565, + 555, + 563, 0 ] }, @@ -358,13 +358,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -374,13 +374,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -390,13 +390,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -411,8 +411,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ] }, @@ -421,8 +421,8 @@ snapshot_kind: text 0.0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -436,8 +436,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ] }, @@ -446,8 +446,8 @@ snapshot_kind: text 433.0127 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -461,8 +461,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ] }, @@ -471,8 +471,8 @@ snapshot_kind: text 433.0127 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -522,8 +522,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -540,8 +540,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ] }, @@ -550,8 +550,8 @@ snapshot_kind: text 0.0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -565,13 +565,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -581,8 +581,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 246, 248, - 250, 0 ] } @@ -599,8 +599,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ] }, @@ -609,8 +609,8 @@ snapshot_kind: text 433.0127018922193 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -624,13 +624,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -640,8 +640,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 308, 310, - 312, 0 ] } @@ -658,8 +658,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ] }, @@ -668,8 +668,8 @@ snapshot_kind: text 433.01270189221935 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -683,13 +683,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -699,8 +699,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 370, 372, - 374, 0 ] } @@ -710,8 +710,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -723,8 +723,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -733,8 +733,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 438, - 460, + 436, + 458, 0 ] } @@ -753,8 +753,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 468, - 519, + 466, + 517, 0 ] } @@ -771,8 +771,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 527, - 549, + 525, + 547, 0 ] }, @@ -787,8 +787,8 @@ snapshot_kind: text ], "radius": 80.0, "tag": { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "value": "arc_tag" }, @@ -802,13 +802,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 527, - 549, + 525, + 547, 0 ], "tag": { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "value": "arc_tag" }, @@ -818,8 +818,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 540, - 548, + 538, + 546, 0 ] } @@ -829,8 +829,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 468, - 519, + 466, + 517, 0 ] } @@ -847,8 +847,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 527, - 549, + 525, + 547, 0 ] }, @@ -863,8 +863,8 @@ snapshot_kind: text ], "radius": 80.0, "tag": { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "value": "arc_tag" }, @@ -878,8 +878,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 557, - 565, + 555, + 563, 0 ] }, @@ -922,13 +922,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -938,13 +938,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -954,13 +954,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -975,8 +975,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ] }, @@ -985,8 +985,8 @@ snapshot_kind: text 0.0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -1000,8 +1000,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ] }, @@ -1010,8 +1010,8 @@ snapshot_kind: text 433.0127 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -1025,8 +1025,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ] }, @@ -1035,8 +1035,8 @@ snapshot_kind: text 433.0127 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -1086,8 +1086,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -1104,8 +1104,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ] }, @@ -1114,8 +1114,8 @@ snapshot_kind: text 0.0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -1129,13 +1129,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -1145,8 +1145,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 246, 248, - 250, 0 ] } @@ -1163,8 +1163,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ] }, @@ -1173,8 +1173,8 @@ snapshot_kind: text 433.0127018922193 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -1188,13 +1188,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -1204,8 +1204,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 308, 310, - 312, 0 ] } @@ -1222,8 +1222,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ] }, @@ -1232,8 +1232,8 @@ snapshot_kind: text 433.01270189221935 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -1247,13 +1247,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -1263,8 +1263,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 370, 372, - 374, 0 ] } @@ -1274,8 +1274,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -1287,8 +1287,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -1297,8 +1297,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 438, - 460, + 436, + 458, 0 ] } @@ -1317,8 +1317,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 468, - 519, + 466, + 517, 0 ] } @@ -1335,8 +1335,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 527, - 549, + 525, + 547, 0 ] }, @@ -1351,8 +1351,8 @@ snapshot_kind: text ], "radius": 80.0, "tag": { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "value": "arc_tag" }, @@ -1366,13 +1366,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 527, - 549, + 525, + 547, 0 ], "tag": { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "value": "arc_tag" }, @@ -1382,8 +1382,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 540, - 548, + 538, + 546, 0 ] } @@ -1393,8 +1393,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 468, - 519, + 466, + 517, 0 ] } @@ -1404,27 +1404,27 @@ snapshot_kind: text "circ": { "type": "Object", "value": { - "angle_end": { + "angleEnd": { "type": "Number", "value": 360.0, "__meta": [ { "sourceRange": [ - 92, - 95, + 90, + 93, 0 ] } ] }, - "angle_start": { + "angleStart": { "type": "Number", "value": 0.0, "__meta": [ { "sourceRange": [ + 74, 75, - 76, 0 ] } @@ -1448,7 +1448,7 @@ snapshot_kind: text { "sourceRange": [ 57, - 116, + 114, 0 ] } @@ -1465,28 +1465,28 @@ snapshot_kind: text { "arguments": [ { - "end": 453, + "end": 451, "name": "p", - "start": 452, + "start": 450, "type": "Identifier", "type": "Identifier" }, { - "end": 459, + "end": 457, "name": "face", - "start": 455, + "start": 453, "type": "Identifier", "type": "Identifier" } ], "callee": { - "end": 451, + "end": 449, "name": "startSketchOn", - "start": 438, + "start": 436, "type": "Identifier" }, - "end": 460, - "start": 438, + "end": 458, + "start": 436, "type": "CallExpression", "type": "CallExpression" }, @@ -1495,163 +1495,163 @@ snapshot_kind: text { "elements": [ { - "end": 494, + "end": 492, "left": { - "end": 485, + "end": 483, "name": "x", - "start": 484, + "start": 482, "type": "Identifier", "type": "Identifier" }, "operator": "+", "right": { - "end": 494, + "end": 492, "name": "radius", - "start": 488, + "start": 486, "type": "Identifier", "type": "Identifier" }, - "start": 484, + "start": 482, "type": "BinaryExpression", "type": "BinaryExpression" }, { - "end": 514, + "end": 512, "left": { - "end": 510, + "end": 508, "name": "triangleHeight", - "start": 496, + "start": 494, "type": "Identifier", "type": "Identifier" }, "operator": "/", "right": { - "end": 514, + "end": 512, "raw": "2", - "start": 513, + "start": 511, "type": "Literal", "type": "Literal", "value": 2.0 }, - "start": 496, + "start": 494, "type": "BinaryExpression", "type": "BinaryExpression" } ], - "end": 515, - "start": 483, + "end": 513, + "start": 481, "type": "ArrayExpression", "type": "ArrayExpression" }, { - "end": 518, - "start": 517, + "end": 516, + "start": 515, "type": "PipeSubstitution", "type": "PipeSubstitution" } ], "callee": { - "end": 482, + "end": 480, "name": "startProfileAt", - "start": 468, + "start": 466, "type": "Identifier" }, - "end": 519, - "start": 468, + "end": 517, + "start": 466, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { - "end": 535, + "end": 533, "name": "circ", - "start": 531, + "start": 529, "type": "Identifier", "type": "Identifier" }, { - "end": 538, - "start": 537, + "end": 536, + "start": 535, "type": "PipeSubstitution", "type": "PipeSubstitution" }, { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "type": "TagDeclarator", "value": "arc_tag" } ], "callee": { - "end": 530, + "end": 528, "name": "arc", - "start": 527, + "start": 525, "type": "Identifier" }, - "end": 549, - "start": 527, + "end": 547, + "start": 525, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { - "end": 564, - "start": 563, + "end": 562, + "start": 561, "type": "PipeSubstitution", "type": "PipeSubstitution" } ], "callee": { - "end": 562, + "end": 560, "name": "close", - "start": 557, + "start": 555, "type": "Identifier" }, - "end": 565, - "start": 557, + "end": 563, + "start": 555, "type": "CallExpression", "type": "CallExpression" } ], - "end": 565, - "start": 438, + "end": 563, + "start": 436, "type": "PipeExpression", "type": "PipeExpression" }, - "end": 565, - "start": 431, + "end": 563, + "start": 429, "type": "ReturnStatement", "type": "ReturnStatement" } ], - "end": 567, - "start": 427 + "end": 565, + "start": 425 }, - "end": 567, + "end": 565, "params": [ { "type": "Parameter", "identifier": { - "end": 419, + "end": 417, "name": "x", - "start": 418, + "start": 416, "type": "Identifier" } }, { "type": "Parameter", "identifier": { - "end": 425, + "end": 423, "name": "face", - "start": 421, + "start": 419, "type": "Identifier" } } ], - "start": 417, + "start": 415, "type": "FunctionExpression" }, "memory": { @@ -1690,8 +1690,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ] }, @@ -1700,8 +1700,8 @@ snapshot_kind: text 0.0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -1715,13 +1715,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -1731,8 +1731,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 246, 248, - 250, 0 ] } @@ -1750,8 +1750,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ] }, @@ -1760,8 +1760,8 @@ snapshot_kind: text 433.0127018922193 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -1775,13 +1775,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -1791,8 +1791,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 308, 310, - 312, 0 ] } @@ -1810,8 +1810,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ] }, @@ -1820,8 +1820,8 @@ snapshot_kind: text 433.01270189221935 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -1835,13 +1835,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -1851,8 +1851,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 370, 372, - 374, 0 ] } @@ -1861,27 +1861,27 @@ snapshot_kind: text "circ": { "type": "Object", "value": { - "angle_end": { + "angleEnd": { "type": "Number", "value": 360.0, "__meta": [ { "sourceRange": [ - 92, - 95, + 90, + 93, 0 ] } ] }, - "angle_start": { + "angleStart": { "type": "Number", "value": 0.0, "__meta": [ { "sourceRange": [ + 74, 75, - 76, 0 ] } @@ -1905,7 +1905,7 @@ snapshot_kind: text { "sourceRange": [ 57, - 116, + 114, 0 ] } @@ -1920,13 +1920,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -1936,13 +1936,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -1952,13 +1952,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -1973,8 +1973,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ] }, @@ -1983,8 +1983,8 @@ snapshot_kind: text 0.0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -1998,8 +1998,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ] }, @@ -2008,8 +2008,8 @@ snapshot_kind: text 433.0127 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -2023,8 +2023,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ] }, @@ -2033,8 +2033,8 @@ snapshot_kind: text 433.0127 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -2084,8 +2084,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -2102,8 +2102,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ] }, @@ -2112,8 +2112,8 @@ snapshot_kind: text 0.0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -2127,13 +2127,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -2143,8 +2143,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 246, 248, - 250, 0 ] } @@ -2161,8 +2161,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ] }, @@ -2171,8 +2171,8 @@ snapshot_kind: text 433.0127018922193 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -2186,13 +2186,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -2202,8 +2202,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 308, 310, - 312, 0 ] } @@ -2220,8 +2220,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ] }, @@ -2230,8 +2230,8 @@ snapshot_kind: text 433.01270189221935 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -2245,13 +2245,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -2261,8 +2261,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 370, 372, - 374, 0 ] } @@ -2272,8 +2272,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -2285,8 +2285,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -2337,8 +2337,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 132, - 135, + 130, + 133, 0 ] } @@ -2354,8 +2354,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 417, - 567, + 415, + 565, 0 ] } @@ -2370,13 +2370,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -2386,13 +2386,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -2402,13 +2402,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -2423,8 +2423,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ] }, @@ -2433,8 +2433,8 @@ snapshot_kind: text 0.0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -2448,8 +2448,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ] }, @@ -2458,8 +2458,8 @@ snapshot_kind: text 433.0127 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -2473,8 +2473,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ] }, @@ -2483,8 +2483,8 @@ snapshot_kind: text 433.0127 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -2534,8 +2534,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -2552,8 +2552,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ] }, @@ -2562,8 +2562,8 @@ snapshot_kind: text 0.0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -2577,13 +2577,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -2593,8 +2593,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 246, 248, - 250, 0 ] } @@ -2611,8 +2611,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ] }, @@ -2621,8 +2621,8 @@ snapshot_kind: text 433.0127018922193 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -2636,13 +2636,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -2652,8 +2652,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 308, 310, - 312, 0 ] } @@ -2670,8 +2670,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ] }, @@ -2680,8 +2680,8 @@ snapshot_kind: text 433.01270189221935 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -2695,13 +2695,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -2711,8 +2711,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 370, 372, - 374, 0 ] } @@ -2722,8 +2722,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -2735,8 +2735,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -2751,13 +2751,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 527, - 549, + 525, + 547, 0 ], "tag": { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "value": "arc_tag" }, @@ -2772,8 +2772,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 527, - 549, + 525, + 547, 0 ] }, @@ -2788,8 +2788,8 @@ snapshot_kind: text ], "radius": 80.0, "tag": { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "value": "arc_tag" }, @@ -2803,8 +2803,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 557, - 565, + 555, + 563, 0 ] }, @@ -2847,13 +2847,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -2863,13 +2863,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -2879,13 +2879,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -2900,8 +2900,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ] }, @@ -2910,8 +2910,8 @@ snapshot_kind: text 0.0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -2925,8 +2925,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ] }, @@ -2935,8 +2935,8 @@ snapshot_kind: text 433.0127 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -2950,8 +2950,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ] }, @@ -2960,8 +2960,8 @@ snapshot_kind: text 433.0127 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -3011,8 +3011,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -3029,8 +3029,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ] }, @@ -3039,8 +3039,8 @@ snapshot_kind: text 0.0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -3054,13 +3054,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -3070,8 +3070,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 246, 248, - 250, 0 ] } @@ -3088,8 +3088,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ] }, @@ -3098,8 +3098,8 @@ snapshot_kind: text 433.0127018922193 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -3113,13 +3113,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -3129,8 +3129,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 308, 310, - 312, 0 ] } @@ -3147,8 +3147,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ] }, @@ -3157,8 +3157,8 @@ snapshot_kind: text 433.01270189221935 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -3172,13 +3172,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -3188,8 +3188,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 370, 372, - 374, 0 ] } @@ -3199,8 +3199,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -3212,8 +3212,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -3222,8 +3222,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 438, - 460, + 436, + 458, 0 ] } @@ -3242,8 +3242,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 468, - 519, + 466, + 517, 0 ] } @@ -3260,8 +3260,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 527, - 549, + 525, + 547, 0 ] }, @@ -3276,8 +3276,8 @@ snapshot_kind: text ], "radius": 80.0, "tag": { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "value": "arc_tag" }, @@ -3291,13 +3291,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 527, - 549, + 525, + 547, 0 ], "tag": { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "value": "arc_tag" }, @@ -3307,8 +3307,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 540, - 548, + 538, + 546, 0 ] } @@ -3318,8 +3318,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 468, - 519, + 466, + 517, 0 ] } @@ -3347,8 +3347,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 468, - 519, + 466, + 517, 0 ] } @@ -3363,13 +3363,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 527, - 549, + 525, + 547, 0 ], "tag": { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "value": "arc_tag" }, @@ -3384,8 +3384,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 527, - 549, + 525, + 547, 0 ] }, @@ -3400,8 +3400,8 @@ snapshot_kind: text ], "radius": 80.0, "tag": { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "value": "arc_tag" }, @@ -3415,8 +3415,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 557, - 565, + 555, + 563, 0 ] }, @@ -3459,13 +3459,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -3475,13 +3475,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -3491,13 +3491,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -3512,8 +3512,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ] }, @@ -3522,8 +3522,8 @@ snapshot_kind: text 0.0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -3537,8 +3537,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ] }, @@ -3547,8 +3547,8 @@ snapshot_kind: text 433.0127 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -3562,8 +3562,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ] }, @@ -3572,8 +3572,8 @@ snapshot_kind: text 433.0127 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -3623,8 +3623,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -3641,8 +3641,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ] }, @@ -3651,8 +3651,8 @@ snapshot_kind: text 0.0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -3666,13 +3666,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 196, - 251, + 194, + 249, 0 ], "tag": { - "end": 250, - "start": 248, + "end": 248, + "start": 246, "type": "TagDeclarator", "value": "a" }, @@ -3682,8 +3682,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 246, 248, - 250, 0 ] } @@ -3700,8 +3700,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ] }, @@ -3710,8 +3710,8 @@ snapshot_kind: text 433.0127018922193 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -3725,13 +3725,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 257, - 313, + 255, + 311, 0 ], "tag": { - "end": 312, - "start": 310, + "end": 310, + "start": 308, "type": "TagDeclarator", "value": "b" }, @@ -3741,8 +3741,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 308, 310, - 312, 0 ] } @@ -3759,8 +3759,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ] }, @@ -3769,8 +3769,8 @@ snapshot_kind: text 433.01270189221935 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -3784,13 +3784,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 319, - 375, + 317, + 373, 0 ], "tag": { - "end": 374, - "start": 372, + "end": 372, + "start": 370, "type": "TagDeclarator", "value": "c" }, @@ -3800,8 +3800,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ + 370, 372, - 374, 0 ] } @@ -3811,8 +3811,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -3824,8 +3824,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 165, - 190, + 163, + 188, 0 ] } @@ -3834,8 +3834,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 438, - 460, + 436, + 458, 0 ] } @@ -3854,8 +3854,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 468, - 519, + 466, + 517, 0 ] } @@ -3872,8 +3872,8 @@ snapshot_kind: text "__geoMeta": { "id": "[uuid]", "sourceRange": [ - 527, - 549, + 525, + 547, 0 ] }, @@ -3888,8 +3888,8 @@ snapshot_kind: text ], "radius": 80.0, "tag": { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "value": "arc_tag" }, @@ -3903,13 +3903,13 @@ snapshot_kind: text "faceId": "[uuid]", "id": "[uuid]", "sourceRange": [ - 527, - 549, + 525, + 547, 0 ], "tag": { - "end": 548, - "start": 540, + "end": 546, + "start": 538, "type": "TagDeclarator", "value": "arc_tag" }, @@ -3919,8 +3919,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 540, - 548, + 538, + 546, 0 ] } @@ -3930,8 +3930,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 468, - 519, + 466, + 517, 0 ] } @@ -3959,8 +3959,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 468, - 519, + 466, + 517, 0 ] } @@ -4011,8 +4011,8 @@ snapshot_kind: text "__meta": [ { "sourceRange": [ - 132, - 135, + 130, + 133, 0 ] } diff --git a/src/wasm-lib/kcl/tests/pipe_as_arg/artifact_commands.snap b/src/wasm-lib/kcl/tests/pipe_as_arg/artifact_commands.snap new file mode 100644 index 000000000..4ca431e05 --- /dev/null +++ b/src/wasm-lib/kcl/tests/pipe_as_arg/artifact_commands.snap @@ -0,0 +1,651 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands pipe_as_arg.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 177, + 194, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 177, + 194, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 177, + 194, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 177, + 194, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": -200.0, + "y": -200.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 202, + 215, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -200.0, + "y": 200.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 223, + 236, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 200.0, + "y": 200.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 244, + 257, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 200.0, + "y": -200.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 265, + 278, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -200.0, + "y": -200.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 286, + 294, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 286, + 294, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 400.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 302, + 320, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/pipe_substitution_inside_function_called_from_pipeline/artifact_commands.snap b/src/wasm-lib/kcl/tests/pipe_substitution_inside_function_called_from_pipeline/artifact_commands.snap new file mode 100644 index 000000000..ead230e19 --- /dev/null +++ b/src/wasm-lib/kcl/tests/pipe_substitution_inside_function_called_from_pipeline/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands pipe_substitution_inside_function_called_from_pipeline.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/poop_chute/artifact_commands.snap b/src/wasm-lib/kcl/tests/poop_chute/artifact_commands.snap new file mode 100644 index 000000000..80a222911 --- /dev/null +++ b/src/wasm-lib/kcl/tests/poop_chute/artifact_commands.snap @@ -0,0 +1,1840 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands poop_chute.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 182, + 202, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 208, + 252, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 208, + 252, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 208, + 252, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 258, + 286, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0625, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 292, + 355, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.0, + "y": 0.9375, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 361, + 379, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.0, + "y": 5.5, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 385, + 410, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.125, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 416, + 442, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.875, + "y": 0.9375, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 448, + 547, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.0625, + "y": 0.125, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 553, + 578, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.125, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 584, + 662, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.125, + "y": 0.9375, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 668, + 686, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.125, + "y": 5.5, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 692, + 705, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 5.5, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 711, + 737, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 0.9375, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 743, + 789, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9375, + "y": 0.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 795, + 803, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 795, + 803, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "revolve", + "target": "[uuid]", + "origin": { + "x": 0.0, + "y": 5.5000001, + "z": 0.0 + }, + "axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "axis_is_2d": true, + "angle": { + "unit": "degrees", + "value": 90.0 + }, + "tolerance": 0.0000001 + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 814, + 952, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 966, + 986, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 992, + 1036, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 992, + 1036, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 992, + 1036, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1042, + 1070, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0625, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1076, + 1139, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.0, + "y": 0.9375, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1145, + 1163, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.0, + "y": 5.5, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1169, + 1194, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.125, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1200, + 1226, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.875, + "y": 0.9375, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1232, + 1331, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.0625, + "y": 0.125, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1337, + 1362, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.125, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1368, + 1446, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.125, + "y": 0.9375, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1452, + 1470, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.125, + "y": 5.5, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1476, + 1489, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 5.5, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1495, + 1521, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 0.9375, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1527, + 1573, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.9375, + "y": 0.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1579, + 1587, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1579, + 1587, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 1.5, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1593, + 1625, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/property_of_object/artifact_commands.snap b/src/wasm-lib/kcl/tests/property_of_object/artifact_commands.snap new file mode 100644 index 000000000..eccae5890 --- /dev/null +++ b/src/wasm-lib/kcl/tests/property_of_object/artifact_commands.snap @@ -0,0 +1,285 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands property_of_object.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + } +] diff --git a/src/wasm-lib/kcl/tests/riddle_small/artifact_commands.snap b/src/wasm-lib/kcl/tests/riddle_small/artifact_commands.snap new file mode 100644 index 000000000..504f8f6bc --- /dev/null +++ b/src/wasm-lib/kcl/tests/riddle_small/artifact_commands.snap @@ -0,0 +1,630 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands riddle_small.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 141, + 160, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 166, + 193, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 166, + 193, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 166, + 193, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": -26.0, + "y": 34.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 199, + 214, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 220, + 236, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 242, + 258, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 264, + 272, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 264, + 272, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 278, + 291, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 278, + 291, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 1.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 278, + 291, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 278, + 291, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 278, + 291, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 278, + 291, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 278, + 291, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 278, + 291, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 278, + 291, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 278, + 291, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 278, + 291, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 278, + 291, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 278, + 291, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/sketch-on-chamfer-two-times-different-order/artifact_commands.snap b/src/wasm-lib/kcl/tests/sketch-on-chamfer-two-times-different-order/artifact_commands.snap new file mode 100644 index 000000000..de9a4be49 --- /dev/null +++ b/src/wasm-lib/kcl/tests/sketch-on-chamfer-two-times-different-order/artifact_commands.snap @@ -0,0 +1,1174 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands sketch-on-chamfer-two-times-different-order.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12, + 31, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37, + 69, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37, + 69, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37, + 69, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 75.8, + "y": 317.2, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 105, + 154, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 268.43, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 160, + 247, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -217.26, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 253, + 350, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -268.43, + "y": -0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 356, + 411, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 75.8, + "y": 317.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 417, + 425, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 417, + 425, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 100.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 561, + 583, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 468, + 510, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 20.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 516, + 603, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 50.0, + "tolerance": 0.0000001, + "cut_type": "chamfer", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 609, + 660, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 50.0, + "tolerance": 0.0000001, + "cut_type": "chamfer", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 712, + 746, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 712, + 746, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 712, + 746, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": -69.1, + "y": 277.34, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 752, + 800, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 41.48, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 806, + 907, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -104.8, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 913, + 1033, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -41.48, + "y": -0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1039, + 1086, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -69.1, + "y": 277.34, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1092, + 1100, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1151, + 1186, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1151, + 1186, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1151, + 1186, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 159.25, + "y": 278.35, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1192, + 1240, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 40.82, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1246, + 1348, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -132.27, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1354, + 1474, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -40.82, + "y": -0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1480, + 1527, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 159.25, + "y": 278.35, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1533, + 1541, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 50.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/sketch-on-chamfer-two-times/artifact_commands.snap b/src/wasm-lib/kcl/tests/sketch-on-chamfer-two-times/artifact_commands.snap new file mode 100644 index 000000000..2e35be978 --- /dev/null +++ b/src/wasm-lib/kcl/tests/sketch-on-chamfer-two-times/artifact_commands.snap @@ -0,0 +1,1174 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands sketch-on-chamfer-two-times.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12, + 31, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37, + 69, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37, + 69, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 37, + 69, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 75.8, + "y": 317.2, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 105, + 154, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 268.43, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 160, + 247, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -217.26, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 253, + 350, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -268.43, + "y": -0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 356, + 411, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 75.8, + "y": 317.2, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 417, + 425, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 417, + 425, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 100.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 439, + 462, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 618, + 640, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 468, + 510, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 20.0, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 516, + 567, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 50.0, + "tolerance": 0.0000001, + "cut_type": "chamfer", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 573, + 660, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 50.0, + "tolerance": 0.0000001, + "cut_type": "chamfer", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 712, + 746, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 712, + 746, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 712, + 746, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": -69.1, + "y": 277.34, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 752, + 800, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 41.48, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 806, + 907, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -104.8, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 913, + 1033, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -41.48, + "y": -0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1039, + 1086, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -69.1, + "y": 277.34, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1092, + 1100, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1151, + 1186, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1151, + 1186, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1151, + 1186, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 159.25, + "y": 278.35, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1192, + 1240, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 40.82, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1246, + 1348, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -132.27, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1354, + 1474, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -40.82, + "y": -0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1480, + 1527, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 159.25, + "y": 278.35, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1533, + 1541, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 50.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1555, + 1577, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/sketch_in_object/artifact_commands.snap b/src/wasm-lib/kcl/tests/sketch_in_object/artifact_commands.snap new file mode 100644 index 000000000..3255c06ca --- /dev/null +++ b/src/wasm-lib/kcl/tests/sketch_in_object/artifact_commands.snap @@ -0,0 +1,975 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands sketch_in_object.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 21, + 40, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 48, + 73, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 48, + 73, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 48, + 73, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 81, + 96, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 104, + 119, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 127, + 143, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 151, + 159, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 151, + 159, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 407, + 422, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 407, + 422, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": -10.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 407, + 422, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 407, + 422, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 407, + 422, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 407, + 422, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 407, + 422, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 407, + 422, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 407, + 422, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 407, + 422, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 407, + 422, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 407, + 422, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 407, + 422, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 217, + 236, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 248, + 273, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 248, + 273, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 248, + 273, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 285, + 300, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 312, + 327, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 339, + 355, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 367, + 375, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 367, + 375, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 459, + 473, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 459, + 473, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 10.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 459, + 473, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 459, + 473, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 459, + 473, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 459, + 473, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 459, + 473, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 459, + 473, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 459, + 473, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 459, + 473, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 459, + 473, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 459, + 473, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 459, + 473, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/sketch_on_face/artifact_commands.snap b/src/wasm-lib/kcl/tests/sketch_on_face/artifact_commands.snap new file mode 100644 index 000000000..1fc25b6ca --- /dev/null +++ b/src/wasm-lib/kcl/tests/sketch_on_face/artifact_commands.snap @@ -0,0 +1,927 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands sketch_on_face.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10, + 29, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 68, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 68, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 68, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 11.19, + "y": 28.35, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 74, + 105, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 28.67, + "y": -13.25, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 111, + 135, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -4.12, + "y": -22.81, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 141, + 165, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -33.24, + "y": 14.55, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 171, + 179, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 171, + 179, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 185, + 198, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 185, + 198, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 5.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 185, + 198, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 185, + 198, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 185, + 198, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 185, + 198, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 185, + 198, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 185, + 198, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 185, + 198, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 185, + 198, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 185, + 198, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 185, + 198, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 185, + 198, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 244, + 269, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 244, + 269, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 244, + 269, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 275, + 291, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 297, + 313, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 319, + 336, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 342, + 350, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 356, + 369, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 356, + 369, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 5.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 356, + 369, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 356, + 369, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 356, + 369, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 356, + 369, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 356, + 369, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 356, + 369, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 356, + 369, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 356, + 369, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 356, + 369, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 356, + 369, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 356, + 369, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/sketch_on_face_after_fillets_referencing_face/artifact_commands.snap b/src/wasm-lib/kcl/tests/sketch_on_face_after_fillets_referencing_face/artifact_commands.snap new file mode 100644 index 000000000..5e4673573 --- /dev/null +++ b/src/wasm-lib/kcl/tests/sketch_on_face_after_fillets_referencing_face/artifact_commands.snap @@ -0,0 +1,1108 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands sketch_on_face_after_fillets_referencing_face.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 992, + 1011, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1017, + 1042, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1017, + 1042, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1017, + 1042, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1048, + 1084, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 6.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1090, + 1124, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -8.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1130, + 1154, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -0.3207, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1160, + 1209, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 7.6793, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1215, + 1252, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -5.6793, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1258, + 1266, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1258, + 1266, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 6.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1272, + 1289, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1344, + 1374, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1453, + 1483, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1295, + 1386, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 0.25, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1392, + 1495, + 0 + ], + "command": { + "type": "solid3d_fillet_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "radius": 0.5707134902949093, + "tolerance": 0.0000001, + "cut_type": "fillet", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1544, + 1575, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1544, + 1575, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1544, + 1575, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 4.28, + "y": 3.83, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1581, + 1603, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2.17, + "y": -0.03, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1609, + 1631, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.07, + "y": -1.8, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1637, + 1659, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -2.07, + "y": 0.05, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1665, + 1712, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 4.28, + "y": 3.83, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1718, + 1726, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1732, + 1746, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1732, + 1746, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 10.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1732, + 1746, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1732, + 1746, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1732, + 1746, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1732, + 1746, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1732, + 1746, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1732, + 1746, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1732, + 1746, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1732, + 1746, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1732, + 1746, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1732, + 1746, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 1732, + 1746, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/sketch_on_face_circle_tagged/artifact_commands.snap b/src/wasm-lib/kcl/tests/sketch_on_face_circle_tagged/artifact_commands.snap new file mode 100644 index 000000000..809ab34c0 --- /dev/null +++ b/src/wasm-lib/kcl/tests/sketch_on_face_circle_tagged/artifact_commands.snap @@ -0,0 +1,809 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands sketch_on_face_circle_tagged.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29, + 48, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56, + 78, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56, + 78, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56, + 78, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 86, + 105, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 20.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 113, + 132, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 20.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 140, + 160, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -20.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 208, + 216, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 208, + 216, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 20.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 283, + 336, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 283, + 336, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 283, + 336, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 5.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 283, + 336, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "arc", + "center": { + "x": 0.0, + "y": 0.0 + }, + "radius": 5.0, + "start": { + "unit": "degrees", + "value": 0.0 + }, + "end": { + "unit": "degrees", + "value": 360.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 283, + 336, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 342, + 355, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 342, + 355, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 5.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 342, + 355, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 342, + 355, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 342, + 355, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 342, + 355, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 342, + 355, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/sketch_on_face_end/artifact_commands.snap b/src/wasm-lib/kcl/tests/sketch_on_face_end/artifact_commands.snap new file mode 100644 index 000000000..b259b72cb --- /dev/null +++ b/src/wasm-lib/kcl/tests/sketch_on_face_end/artifact_commands.snap @@ -0,0 +1,927 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands sketch_on_face_end.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29, + 48, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56, + 78, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56, + 78, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56, + 78, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 86, + 105, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 20.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 113, + 132, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 20.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 140, + 160, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -20.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 208, + 216, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 208, + 216, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 20.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 283, + 308, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 283, + 308, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 283, + 308, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 314, + 330, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 336, + 352, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 358, + 375, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 381, + 389, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 408, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 408, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 5.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 408, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 408, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 408, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 408, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 408, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 408, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 408, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 408, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 408, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 408, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 408, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/sketch_on_face_end_negative_extrude/artifact_commands.snap b/src/wasm-lib/kcl/tests/sketch_on_face_end_negative_extrude/artifact_commands.snap new file mode 100644 index 000000000..b287e6175 --- /dev/null +++ b/src/wasm-lib/kcl/tests/sketch_on_face_end_negative_extrude/artifact_commands.snap @@ -0,0 +1,927 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands sketch_on_face_end_negative_extrude.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29, + 48, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56, + 78, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56, + 78, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56, + 78, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 86, + 105, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 20.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 113, + 132, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 20.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 140, + 160, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -20.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 208, + 216, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 208, + 216, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 20.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 283, + 308, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 283, + 308, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 283, + 308, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 314, + 330, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 336, + 352, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 358, + 375, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 381, + 389, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 409, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 409, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": -5.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 409, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 409, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 409, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 409, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 409, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 409, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 409, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 409, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 409, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 409, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 395, + 409, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/sketch_on_face_start/artifact_commands.snap b/src/wasm-lib/kcl/tests/sketch_on_face_start/artifact_commands.snap new file mode 100644 index 000000000..d7e4ec6e8 --- /dev/null +++ b/src/wasm-lib/kcl/tests/sketch_on_face_start/artifact_commands.snap @@ -0,0 +1,927 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands sketch_on_face_start.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 29, + 48, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56, + 78, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56, + 78, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 56, + 78, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 86, + 105, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 20.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 113, + 132, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 20.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 140, + 160, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -20.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 208, + 216, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 208, + 216, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 20.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 222, + 236, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 288, + 313, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 288, + 313, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 288, + 313, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 319, + 335, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 341, + 357, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 363, + 380, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 386, + 394, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 400, + 413, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 400, + 413, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 5.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 400, + 413, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 400, + 413, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 400, + 413, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 400, + 413, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 400, + 413, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 400, + 413, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 400, + 413, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 400, + 413, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 400, + 413, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 400, + 413, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 400, + 413, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/tan_arc_x_line/artifact_commands.snap b/src/wasm-lib/kcl/tests/tan_arc_x_line/artifact_commands.snap new file mode 100644 index 000000000..990648e89 --- /dev/null +++ b/src/wasm-lib/kcl/tests/tan_arc_x_line/artifact_commands.snap @@ -0,0 +1,464 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands tan_arc_x_line.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 64, + 83, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 89, + 124, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 89, + 124, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 89, + 124, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 130, + 185, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 191, + 252, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc", + "radius": 1.0, + "offset": { + "unit": "degrees", + "value": 135.0 + } + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 258, + 344, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc", + "radius": 0.5, + "offset": { + "unit": "degrees", + "value": 135.0 + } + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 350, + 437, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc", + "radius": 0.5, + "offset": { + "unit": "degrees", + "value": -135.0 + } + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 443, + 456, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1.0, + "y": -1.2817, + "z": 0.0 + }, + "relative": false + } + } + } +] diff --git a/src/wasm-lib/kcl/tests/tangential_arc/artifact_commands.snap b/src/wasm-lib/kcl/tests/tangential_arc/artifact_commands.snap new file mode 100644 index 000000000..ced055e37 --- /dev/null +++ b/src/wasm-lib/kcl/tests/tangential_arc/artifact_commands.snap @@ -0,0 +1,578 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands tangential_arc.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12, + 33, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12, + 33, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12, + 33, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 12, + 33, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 39, + 55, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 61, + 106, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "tangential_arc", + "radius": 5.0, + "offset": { + "unit": "degrees", + "value": 90.0 + } + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 112, + 129, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 5.0, + "y": -15.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 135, + 149, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 135, + 149, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 10.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 135, + 149, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 135, + 149, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 135, + 149, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 135, + 149, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 135, + 149, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 135, + 149, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 135, + 149, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 135, + 149, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 135, + 149, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/kcl/tests/xz_plane/artifact_commands.snap b/src/wasm-lib/kcl/tests/xz_plane/artifact_commands.snap new file mode 100644 index 000000000..cccb4429c --- /dev/null +++ b/src/wasm-lib/kcl/tests/xz_plane/artifact_commands.snap @@ -0,0 +1,581 @@ +--- +source: kcl/src/simulation_tests.rs +description: Artifact commands xz_plane.kcl +snapshot_kind: text +--- +[ + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.7, + "g": 0.28, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.7, + "b": 0.28, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.28, + "g": 0.28, + "b": 0.7, + "a": 0.4 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": -1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 100.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "edge_lines_visible", + "hidden": false + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "set_scene_units", + "unit": "mm" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 0, + 0, + 0 + ], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 10, + 29, + 0 + ], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 35, + 60, + 0 + ], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 66, + 87, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 100.0, + "y": 100.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 93, + 112, + 0 + ], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 100.0, + "y": 0.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 118, + 126, + 0 + ], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 118, + 126, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 132, + 149, + 0 + ], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": -1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [ + 132, + 149, + 0 + ], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 12.0, + "faces": null + } + }, + { + "cmdId": "[uuid]", + "range": [ + 132, + 149, + 0 + ], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 132, + 149, + 0 + ], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 132, + 149, + 0 + ], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 132, + 149, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 132, + 149, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 132, + 149, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 132, + 149, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 132, + 149, + 0 + ], + "command": { + "type": "solid3d_get_opposite_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [ + 132, + 149, + 0 + ], + "command": { + "type": "solid3d_get_next_adjacent_edge", + "object_id": "[uuid]", + "edge_id": "[uuid]", + "face_id": "[uuid]" + } + } +] diff --git a/src/wasm-lib/src/wasm.rs b/src/wasm-lib/src/wasm.rs index 83a2f6168..9bd07762e 100644 --- a/src/wasm-lib/src/wasm.rs +++ b/src/wasm-lib/src/wasm.rs @@ -5,8 +5,7 @@ use std::sync::Arc; use futures::stream::TryStreamExt; use gloo_utils::format::JsValueSerdeExt; use kcl_lib::{ - exec::IdGenerator, CacheInformation, CoreDump, EngineManager, ExecState, KclErrorWithOutputs, ModuleId, - OldAstState, Program, + exec::IdGenerator, CacheInformation, CoreDump, EngineManager, ExecState, ModuleId, OldAstState, Program, }; use tokio::sync::RwLock; use tower_lsp::{LspService, Server}; @@ -86,6 +85,7 @@ pub async fn execute( // Populate from the old exec state if it exists. if let Some(program_memory_override) = program_memory_override { + // We are in mock mode, so don't use any cache. exec_state.mod_local.memory = program_memory_override; } else { // If we are in mock mode, we don't want to use any cache. @@ -96,7 +96,7 @@ pub async fn execute( } if let Err(err) = ctx - .run( + .run_with_ui_outputs( CacheInformation { old: old_ast_memory, new_ast: program.ast.clone(), @@ -109,11 +109,8 @@ pub async fn execute( bust_cache().await; } - // Add additional outputs to the error. - let error = KclErrorWithOutputs::new(err, exec_state.mod_local.operations.clone()); - // Throw the error. - return Err(serde_json::to_string(&error).map_err(|serde_err| serde_err.to_string())?); + return Err(serde_json::to_string(&err).map_err(|serde_err| serde_err.to_string())?); } if !is_mock { @@ -133,7 +130,7 @@ pub async fn execute( // gloo-serialize crate instead. // DO NOT USE serde_wasm_bindgen::to_value(&exec_state).map_err(|e| e.to_string()) // it will break the frontend. - JsValue::from_serde(&exec_state).map_err(|e| e.to_string()) + JsValue::from_serde(&exec_state.to_wasm_outcome()).map_err(|e| e.to_string()) } // wasm_bindgen wrapper for execute @@ -308,7 +305,7 @@ pub async fn kcl_lsp_run( let mut zoo_client = kittycad::Client::new(token); zoo_client.set_base_url(baseurl.as_str()); - // Check if we can send telememtry for this user. + // Check if we can send telemetry for this user. let can_send_telemetry = match zoo_client.users().get_privacy_settings().await { Ok(privacy_settings) => privacy_settings.can_train_on_data, Err(err) => { @@ -319,7 +316,8 @@ pub async fn kcl_lsp_run( { true } else { - return Err(err.to_string().into()); + web_sys::console::warn_1(&format!("Failed to get privacy settings: {err:?}").into()); + false } } }; diff --git a/src/wasm-lib/tests/executor/inputs/close_arc.kcl b/src/wasm-lib/tests/executor/inputs/close_arc.kcl index ecd867c07..17017b38d 100644 --- a/src/wasm-lib/tests/executor/inputs/close_arc.kcl +++ b/src/wasm-lib/tests/executor/inputs/close_arc.kcl @@ -4,6 +4,6 @@ const height = 3 const body = startSketchOn('XY') |> startProfileAt([center[0]+radius, center[1]], %) - |> arc({angle_end: 360, angle_start: 0, radius: radius}, %) + |> arc({angleEnd: 360, angleStart: 0, radius: radius}, %) |> close(%) |> extrude(height, %) diff --git a/src/wasm-lib/tests/executor/inputs/extrude-custom-plane.kcl b/src/wasm-lib/tests/executor/inputs/extrude-custom-plane.kcl index c5443205b..0c042192c 100644 --- a/src/wasm-lib/tests/executor/inputs/extrude-custom-plane.kcl +++ b/src/wasm-lib/tests/executor/inputs/extrude-custom-plane.kcl @@ -12,9 +12,9 @@ const extrude000 = extrude(1.0, sketch000) const plane005 = { plane: { origin: [0.0, 0.0, 1.0], - x_axis: [0.707107, 0.707107, 0.0], - y_axis: [-0.0, 0.0, 1.0], - z_axis: [0.707107, -0.707107, 0.0] + xAxis: [0.707107, 0.707107, 0.0], + yAxis: [-0.0, 0.0, 1.0], + zAxis: [0.707107, -0.707107, 0.0] } } diff --git a/src/wasm-lib/tests/executor/inputs/extrude-inside-fn-with-tags.kcl b/src/wasm-lib/tests/executor/inputs/extrude-inside-fn-with-tags.kcl index 0466ea7e2..1e193f01e 100644 --- a/src/wasm-lib/tests/executor/inputs/extrude-inside-fn-with-tags.kcl +++ b/src/wasm-lib/tests/executor/inputs/extrude-inside-fn-with-tags.kcl @@ -28,9 +28,9 @@ fn rectShape = (pos, w, l) => { const bracketPlane = { plane: { origin: { x: 0, y: length / 2 + thk, z: 0 }, - x_axis: { x: 1, y: 0, z: 0 }, - y_axis: { x: 0, y: 0, z: 1 }, - z_axis: { x: 0, y: -1, z: 0 } + xAxis: { x: 1, y: 0, z: 0 }, + yAxis: { x: 0, y: 0, z: 1 }, + zAxis: { x: 0, y: -1, z: 0 } } } diff --git a/src/wasm-lib/tests/executor/inputs/global-tags.kcl b/src/wasm-lib/tests/executor/inputs/global-tags.kcl index eb4ccf672..9f2417083 100644 --- a/src/wasm-lib/tests/executor/inputs/global-tags.kcl +++ b/src/wasm-lib/tests/executor/inputs/global-tags.kcl @@ -28,9 +28,9 @@ fn rectShape = (pos, w, l) => { const bracketPlane = { plane: { origin: { x: 0, y: length / 2 + thk, z: 0 }, - x_axis: { x: 1, y: 0, z: 0 }, - y_axis: { x: 0, y: 0, z: 1 }, - z_axis: { x: 0, y: -1, z: 0 } + xAxis: { x: 1, y: 0, z: 0 }, + yAxis: { x: 0, y: 0, z: 1 }, + zAxis: { x: 0, y: -1, z: 0 } } } @@ -67,9 +67,9 @@ const bracketBody = bs const tabPlane = { plane: { origin: { x: 0, y: 0, z: depth + thk }, - x_axis: { x: 1, y: 0, z: 0 }, - y_axis: { x: 0, y: 1, z: 0 }, - z_axis: { x: 0, y: 0, z: 1 } + xAxis: { x: 1, y: 0, z: 0 }, + yAxis: { x: 0, y: 1, z: 0 }, + zAxis: { x: 0, y: 0, z: 1 } } } @@ -133,9 +133,9 @@ const tabsL = startSketchOn(tabPlane) const retPlane = { plane: { origin: { x: -width / 2 + 20, y: 0, z: 0 }, - x_axis: { x: 0, y: 1, z: 0 }, - y_axis: { x: 0, y: 0, z: 1 }, - z_axis: { x: 1, y: 0, z: 0 } + xAxis: { x: 0, y: 1, z: 0 }, + yAxis: { x: 0, y: 0, z: 1 }, + zAxis: { x: 1, y: 0, z: 0 } } } diff --git a/src/wasm-lib/tests/executor/inputs/helix_defaults.kcl b/src/wasm-lib/tests/executor/inputs/helix_defaults.kcl index 0c6651037..a9d6b5033 100644 --- a/src/wasm-lib/tests/executor/inputs/helix_defaults.kcl +++ b/src/wasm-lib/tests/executor/inputs/helix_defaults.kcl @@ -1,4 +1,4 @@ const part001 = startSketchOn('XY') |> circle({ center: [5, 5], radius: 10 }, %) |> extrude(10, %) - |> helix({revolutions: 16, angle_start: 0}, %) + |> helixRevolutions({revolutions = 16, angleStart = 0}, %) diff --git a/src/wasm-lib/tests/executor/inputs/helix_defaults_negative_extrude.kcl b/src/wasm-lib/tests/executor/inputs/helix_defaults_negative_extrude.kcl index ab26043c8..4333f180a 100644 --- a/src/wasm-lib/tests/executor/inputs/helix_defaults_negative_extrude.kcl +++ b/src/wasm-lib/tests/executor/inputs/helix_defaults_negative_extrude.kcl @@ -1,4 +1,4 @@ const part001 = startSketchOn('XY') |> circle({ center: [5, 5], radius: 10 }, %) |> extrude(-10, %) - |> helix({revolutions: 16, angle_start: 0}, %) + |> helixRevolutions({revolutions = 16, angleStart = 0}, %) diff --git a/src/wasm-lib/tests/executor/inputs/helix_with_length.kcl b/src/wasm-lib/tests/executor/inputs/helix_with_length.kcl index 7818e3c5d..87a6f02c5 100644 --- a/src/wasm-lib/tests/executor/inputs/helix_with_length.kcl +++ b/src/wasm-lib/tests/executor/inputs/helix_with_length.kcl @@ -1,4 +1,4 @@ const part001 = startSketchOn('XY') |> circle({ center: [5, 5], radius: 10 }, %) |> extrude(10, %) - |> helix({revolutions: 16, angle_start: 0, length: 3}, %) + |> helixRevolutions({revolutions = 16, angleStart = 0, length = 3}, %) diff --git a/src/wasm-lib/tests/executor/inputs/order-sketch-extrude-in-order.kcl b/src/wasm-lib/tests/executor/inputs/order-sketch-extrude-in-order.kcl index af63140c3..2ab91b80b 100644 --- a/src/wasm-lib/tests/executor/inputs/order-sketch-extrude-in-order.kcl +++ b/src/wasm-lib/tests/executor/inputs/order-sketch-extrude-in-order.kcl @@ -2,13 +2,13 @@ const plane94894440791888 = { plane: { origin: [0.005000000000000001, 0.01, -0.005], - x_axis: [ + xAxis: [ 0.9285064634886234, 0.37131623619207604, 0.0 ], - y_axis: [-0.0, 0.0, 1.0], - z_axis: [ + yAxis: [-0.0, 0.0, 1.0], + zAxis: [ 0.37131623619207604, -0.9285064634886234, 0.0 diff --git a/src/wasm-lib/tests/executor/inputs/order-sketch-extrude-out-of-order.kcl b/src/wasm-lib/tests/executor/inputs/order-sketch-extrude-out-of-order.kcl index 79ed5c170..4b9175f7c 100644 --- a/src/wasm-lib/tests/executor/inputs/order-sketch-extrude-out-of-order.kcl +++ b/src/wasm-lib/tests/executor/inputs/order-sketch-extrude-out-of-order.kcl @@ -2,13 +2,13 @@ const plane94894440791888 = { plane: { origin: [0.005000000000000001, 0.01, -0.005], - x_axis: [ + xAxis: [ 0.9285064634886234, 0.37131623619207604, 0.0 ], - y_axis: [-0.0, 0.0, 1.0], - z_axis: [ + yAxis: [-0.0, 0.0, 1.0], + zAxis: [ 0.37131623619207604, -0.9285064634886234, 0.0 diff --git a/src/wasm-lib/tests/executor/inputs/router-template-slate.kcl b/src/wasm-lib/tests/executor/inputs/router-template-slate.kcl index 9ae75379f..1b199541f 100644 --- a/src/wasm-lib/tests/executor/inputs/router-template-slate.kcl +++ b/src/wasm-lib/tests/executor/inputs/router-template-slate.kcl @@ -13,8 +13,8 @@ const sketch001 = startSketchOn('XZ') |> startProfileAt([0, depth - templateGap], %) |> xLine(length001, %, $seg01) |> arc({ - angle_end: 0, - angle_start: 90, + angleEnd: 0, + angleStart: 90, radius: radius - templateGap }, %) |> yLineTo(-templateGap * 2 - (templateDiameter / 2), %, $seg05) @@ -26,8 +26,8 @@ const sketch001 = startSketchOn('XZ') |> xLine(segLen(seg04, %), %) |> yLine(segLen(seg05, %), %) |> arc({ - angle_end: 90, - angle_start: 180, + angleEnd: 90, + angleStart: 180, radius: radius - templateGap }, %) |> lineTo([profileStartX(%), profileStartY(%)], %) diff --git a/src/wasm-lib/tests/executor/main.rs b/src/wasm-lib/tests/executor/main.rs index 3006fcf1c..caa55992d 100644 --- a/src/wasm-lib/tests/executor/main.rs +++ b/src/wasm-lib/tests/executor/main.rs @@ -285,7 +285,7 @@ async fn optional_params() { fn other_circle = (pos, radius, tag?) => { sg = startSketchOn('XY') |> startProfileAt(pos, %) - |> arc({angle_end: 360, angle_start: 0, radius: radius}, %) + |> arc({angleEnd: 360, angleStart: 0, radius: radius}, %) |> close(%) |> extrude(2, %) @@ -1160,8 +1160,8 @@ async fn kcl_test_plumbus_fillets() { sg = startSketchOn(ext, face) |> startProfileAt([pos[0] + radius, pos[1]], %) |> arc({ - angle_end: 360, - angle_start: 0, + angleEnd: 360, + angleStart: 0, radius: radius }, %, $arc1) |> close(%) @@ -1235,9 +1235,9 @@ async fn kcl_test_member_expression_in_params() { y: originStart[1], z: originStart[2], }, - x_axis: { x: 0, y: 0, z: -1 }, - y_axis: { x: 1, y: 0, z: 0 }, - z_axis: { x: 0, y: 1, z: 0 } + xAxis: { x: 0, y: 0, z: -1 }, + yAxis: { x: 1, y: 0, z: 0 }, + zAxis: { x: 0, y: 1, z: 0 } } }) |> circle({ center: [0, 0], radius: capDia / 2 }, %) @@ -1732,8 +1732,8 @@ async fn kcl_test_arc_error_same_start_end() { let code = r#"startSketchOn('XY') |> startProfileAt([10, 0], %) |> arc({ - angle_start: 180, - angle_end: 180, + angleStart: 180, + angleEnd: 180, radius: 1.5 }, %) |> close(%) @@ -1749,7 +1749,7 @@ async fn kcl_test_arc_error_same_start_end() { assert!(result.is_err()); assert_eq!( result.err().unwrap().to_string(), - r#"type: KclErrorDetails { source_ranges: [SourceRange([57, 140, 0])], message: "Arc start and end angles must be different" }"# + r#"type: KclErrorDetails { source_ranges: [SourceRange([57, 138, 0])], message: "Arc start and end angles must be different" }"# ); } diff --git a/src/wasm-lib/tests/executor/outputs/circle_three_point.png b/src/wasm-lib/tests/executor/outputs/circle_three_point.png new file mode 100644 index 000000000..5a201e4fd Binary files /dev/null and b/src/wasm-lib/tests/executor/outputs/circle_three_point.png differ diff --git a/src/wasm-lib/tests/modify/main.rs b/src/wasm-lib/tests/modify/main.rs index 22c813d74..34ce97431 100644 --- a/src/wasm-lib/tests/modify/main.rs +++ b/src/wasm-lib/tests/modify/main.rs @@ -25,7 +25,7 @@ async fn setup(code: &str, name: &str) -> Result<(ExecutorContext, Program, Modu .send_modeling_cmd( plane_id, SourceRange::default(), - ModelingCmd::from(mcmd::MakePlane { + &ModelingCmd::from(mcmd::MakePlane { clobber: false, origin: Point3d::default(), size: LengthUnit(60.0), @@ -43,7 +43,7 @@ async fn setup(code: &str, name: &str) -> Result<(ExecutorContext, Program, Modu .send_modeling_cmd( uuid::Uuid::new_v4(), SourceRange::default(), - ModelingCmd::from(mcmd::EnableSketchMode { + &ModelingCmd::from(mcmd::EnableSketchMode { animated: false, ortho: true, entity_id: plane_id, diff --git a/tsconfig.json b/tsconfig.json index b5913f0d7..3624d4f38 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,6 +5,9 @@ "@kittycad/codemirror-lsp-client": [ "../packages/codemirror-lsp-client/src/index.ts" ], + "@kittycad/codemirror-lang-kcl": [ + "../packages/codemirror-lang-kcl/src/index.ts" + ], "/*": ["src/*"] }, "types": [ diff --git a/vite.config.ts b/vite.config.ts index 6bfe9755a..c8b8414be 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -58,6 +58,7 @@ const config = defineConfig({ resolve: { alias: { '@kittycad/codemirror-lsp-client': '/packages/codemirror-lsp-client/src', + '@kittycad/codemirror-lang-kcl': '/packages/codemirror-lang-kcl/src', }, }, plugins: [react(), viteTsconfigPaths(), eslint(), version(), lezer()], diff --git a/yarn.lock b/yarn.lock index 88a873e81..79d51c73f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1236,13 +1236,13 @@ "@lezer/lr" "^1.0.0" style-mod "^4.0.0" -"@codemirror/lint@^6.0.0", "@codemirror/lint@^6.8.1": - version "6.8.1" - resolved "https://registry.yarnpkg.com/@codemirror/lint/-/lint-6.8.1.tgz#6427848815baaf68c08e98c7673b804d3d8c0e7f" - integrity sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg== +"@codemirror/lint@^6.0.0", "@codemirror/lint@^6.8.4": + version "6.8.4" + resolved "https://registry.yarnpkg.com/@codemirror/lint/-/lint-6.8.4.tgz#7d8aa5d1a6dec89ffcc23ad45ddca2e12e90982d" + integrity sha512-u4q7PnZlJUojeRe8FJa/njJcMctISGgPQ4PnWsd9268R4ZTtU+tfFYmwkBvgcrK2+QQ8tYFVALVb5fVJykKc5A== dependencies: "@codemirror/state" "^6.0.0" - "@codemirror/view" "^6.0.0" + "@codemirror/view" "^6.35.0" crelt "^1.0.5" "@codemirror/search@^6.0.0", "@codemirror/search@^6.5.6": @@ -1254,10 +1254,12 @@ "@codemirror/view" "^6.0.0" crelt "^1.0.5" -"@codemirror/state@^6.0.0", "@codemirror/state@^6.2.1", "@codemirror/state@^6.4.0", "@codemirror/state@^6.4.1": - version "6.4.1" - resolved "https://registry.yarnpkg.com/@codemirror/state/-/state-6.4.1.tgz#da57143695c056d9a3c38705ed34136e2b68171b" - integrity sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A== +"@codemirror/state@^6.0.0", "@codemirror/state@^6.2.1", "@codemirror/state@^6.4.0", "@codemirror/state@^6.4.1", "@codemirror/state@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@codemirror/state/-/state-6.5.0.tgz#e98dde85620618651543152fe1c2483300a0ccc9" + integrity sha512-MwBHVK60IiIHDcoMet78lxt6iw5gJOGSbNbOIVBHWVXIH4/Nq1+GQgLLGgI1KlnN86WDXsPudVaqYHKBIx7Eyw== + dependencies: + "@marijn/find-cluster-break" "^1.0.0" "@codemirror/theme-one-dark@^6.1.2": version "6.1.2" @@ -1269,12 +1271,12 @@ "@codemirror/view" "^6.0.0" "@lezer/highlight" "^1.0.0" -"@codemirror/view@^6.0.0", "@codemirror/view@^6.17.0", "@codemirror/view@^6.23.0", "@codemirror/view@^6.27.0": - version "6.29.1" - resolved "https://registry.yarnpkg.com/@codemirror/view/-/view-6.29.1.tgz#9c6c6f8a15e12df1b7e9d136dcbf4ff90b81ef71" - integrity sha512-7r+DlO/QFwPqKp73uq5mmrS4TuLPUVotbNOKYzN3OLP5ScrOVXcm4g13/48b6ZXGhdmzMinzFYqH0vo+qihIkQ== +"@codemirror/view@^6.0.0", "@codemirror/view@^6.17.0", "@codemirror/view@^6.23.0", "@codemirror/view@^6.27.0", "@codemirror/view@^6.35.0": + version "6.36.1" + resolved "https://registry.yarnpkg.com/@codemirror/view/-/view-6.36.1.tgz#3c543b8fd72c96b30c4b2b1464d1ebce7e0c5c4b" + integrity sha512-miD1nyT4m4uopZaDdO2uXU/LLHliKNYL9kB1C1wJHrunHLm/rpkb5QVSokqgw9hFqEZakrdlb/VGWX8aYZTslQ== dependencies: - "@codemirror/state" "^6.4.0" + "@codemirror/state" "^6.5.0" style-mod "^4.1.0" w3c-keyname "^2.2.4" @@ -1290,37 +1292,37 @@ resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.0.1.tgz#829f1c76f5800b79c51c709e2f36821b728e0e10" integrity sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA== -"@csstools/css-calc@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.0.1.tgz#1675297b19f0933c729fdd7f4f5279b855ae724f" - integrity sha512-e59V+sNp6e5m+9WnTUydA1DQO70WuKUdseflRpWmXxocF/h5wWGIxUjxfvLtajcmwstH0vm6l0reKMzcyI757Q== +"@csstools/css-calc@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.1.tgz#a7dbc66627f5cf458d42aed14bda0d3860562383" + integrity sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag== -"@csstools/css-color-parser@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.0.2.tgz#710abb97142d58bcefc3a5e032a55a246895351c" - integrity sha512-mNg7A6HnNjlm0we/pDS9dUafOuBxcanN0TBhEGeIk6zZincuk0+mAbnBqfVs29NlvWHZ8diwTG6g5FeU8246sA== +"@csstools/css-color-parser@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.0.7.tgz#442d61d58e54ad258d52c309a787fceb33906484" + integrity sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA== dependencies: "@csstools/color-helpers" "^5.0.1" - "@csstools/css-calc" "^2.0.1" + "@csstools/css-calc" "^2.1.1" -"@csstools/css-parser-algorithms@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.1.tgz#f14ade63bae5f6025ac85c7d03fe47a7ca0e58af" - integrity sha512-lSquqZCHxDfuTg/Sk2hiS0mcSFCEBuj49JfzPHJogDBT0mGCyY5A1AQzBWngitrp7i1/HAZpIgzF/VjhOEIJIg== +"@csstools/css-parser-algorithms@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz#74426e93bd1c4dcab3e441f5cc7ba4fb35d94356" + integrity sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A== -"@csstools/css-tokenizer@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.1.tgz#9dd9b10084f3011290f96789598091e5bcb3c29a" - integrity sha512-UBqaiu7kU0lfvaP982/o3khfXccVlHPWp0/vwwiIgDF0GmqqqxoiXC/6FCjlS9u92f7CoEz6nXKQnrn1kIAkOw== +"@csstools/css-tokenizer@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz#a5502c8539265fecbd873c1e395a890339f119c2" + integrity sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw== -"@csstools/postcss-oklab-function@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.2.tgz#3d36974fbb7c3a589d52756e4eb029eaa29e4735" - integrity sha512-2iSK/T77PHMeorakBAk/WLxSodfIJ/lmi6nxEkuruXfhGH7fByZim4Fw6ZJf4B73SVieRSH2ep8zvYkA2ZfRtA== +"@csstools/postcss-oklab-function@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.7.tgz#33b3322dfb27b0b5eb83a7ad36e67f08bc4e66cd" + integrity sha512-I6WFQIbEKG2IO3vhaMGZDkucbCaUSXMxvHNzDdnfsTCF5tc0UlV3Oe2AhamatQoKFjBi75dSEMrgWq3+RegsOQ== dependencies: - "@csstools/css-color-parser" "^3.0.2" - "@csstools/css-parser-algorithms" "^3.0.1" - "@csstools/css-tokenizer" "^3.0.1" + "@csstools/css-color-parser" "^3.0.7" + "@csstools/css-parser-algorithms" "^3.0.4" + "@csstools/css-tokenizer" "^3.0.3" "@csstools/postcss-progressive-custom-properties" "^4.0.0" "@csstools/utilities" "^2.0.0" @@ -2008,10 +2010,10 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@kittycad/lib@2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@kittycad/lib/-/lib-2.0.7.tgz#63e9c81fc7705c9d0c5fab5939e5d839ec6f393b" - integrity sha512-P26rRZ0KF8C3zhEG2beLlkTJhTPtJF6Nn1wg7w1MxXNvK9RZF6P7DcXqdIh7nJGQt72+JrXoPmApB8Z/R1gQRg== +"@kittycad/lib@2.0.12": + version "2.0.12" + resolved "https://registry.yarnpkg.com/@kittycad/lib/-/lib-2.0.12.tgz#517be58ee8b5f59e5c89bb5076492c960b4ef7d8" + integrity sha512-1eXIP+JbFvWSWQe//ijBuhlnCLRUnZzNAiOf7oMI0WcRTTn8SD8A+TY+NgK6OVGG12unyTPCVXxRR4Xtm3ahLQ== dependencies: openapi-types "^12.0.0" ts-node "^10.9.1" @@ -2073,6 +2075,11 @@ lodash "^4.17.15" tmp-promise "^3.0.2" +"@marijn/find-cluster-break@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz#775374306116d51c0c500b8c4face0f9a04752d8" + integrity sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g== + "@nabla/vite-plugin-eslint@^2.0.5": version "2.0.5" resolved "https://registry.yarnpkg.com/@nabla/vite-plugin-eslint/-/vite-plugin-eslint-2.0.5.tgz#f99333a9fe26442e497fd6af269803453b8c4c68" @@ -2168,85 +2175,100 @@ dependencies: "@codemirror/state" "^6.2.1" -"@rollup/rollup-android-arm-eabi@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz#d941173f82f9b041c61b0dc1a2a91dcd06e4b31e" - integrity sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA== +"@rollup/rollup-android-arm-eabi@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.1.tgz#9bd38df6a29afb7f0336d988bc8112af0c8816c0" + integrity sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw== -"@rollup/rollup-android-arm64@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.0.tgz#7e7157c8543215245ceffc445134d9e843ba51c0" - integrity sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA== +"@rollup/rollup-android-arm64@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.1.tgz#bd1a98390e15b76eeef907175a37c5f0f9e4d214" + integrity sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew== -"@rollup/rollup-darwin-arm64@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz#f0a18a4fc8dc6eb1e94a51fa2adb22876f477947" - integrity sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA== +"@rollup/rollup-darwin-arm64@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.1.tgz#bc6fa8a2cc77b5f367424e5e994e3537524e6879" + integrity sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw== -"@rollup/rollup-darwin-x64@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.0.tgz#34b7867613e5cc42d2b85ddc0424228cc33b43f0" - integrity sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg== +"@rollup/rollup-darwin-x64@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.1.tgz#76059c91f06b17406347b127df10f065283b2e61" + integrity sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng== -"@rollup/rollup-linux-arm-gnueabihf@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.0.tgz#422b19ff9ae02b05d3395183d1d43b38c7c8be0b" - integrity sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA== +"@rollup/rollup-freebsd-arm64@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.1.tgz#83178315c0be4b4c8c1fd835e1952d2dc1eb4e6e" + integrity sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw== -"@rollup/rollup-linux-arm-musleabihf@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.0.tgz#568aa29195ef6fc57ec6ed3f518923764406a8ee" - integrity sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w== +"@rollup/rollup-freebsd-x64@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.1.tgz#1ef24fa0576bf7899a0a0a649156606dbd7a0d46" + integrity sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w== -"@rollup/rollup-linux-arm64-gnu@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.0.tgz#22309c8bcba9a73114f69165c72bc94b2fbec085" - integrity sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w== +"@rollup/rollup-linux-arm-gnueabihf@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.1.tgz#443a6f5681bf4611caae42988994a6d8ee676216" + integrity sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A== -"@rollup/rollup-linux-arm64-musl@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.0.tgz#c93c388af6d33f082894b8a60839d7265b2b9bc5" - integrity sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw== +"@rollup/rollup-linux-arm-musleabihf@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.1.tgz#9738b27184102228637a683e5f35b22ea352394f" + integrity sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ== -"@rollup/rollup-linux-powerpc64le-gnu@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.0.tgz#493c5e19e395cf3c6bd860c7139c8a903dea72b4" - integrity sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg== +"@rollup/rollup-linux-arm64-gnu@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.1.tgz#b5e9d5e30ff36a19bedd29c715ba18a1889ff269" + integrity sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA== -"@rollup/rollup-linux-riscv64-gnu@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.0.tgz#a2eab4346fbe5909165ce99adb935ba30c9fb444" - integrity sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg== +"@rollup/rollup-linux-arm64-musl@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.1.tgz#1d8f68f0829b57f746ec03432ad046f1af014a98" + integrity sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA== -"@rollup/rollup-linux-s390x-gnu@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.0.tgz#0bc49a79db4345d78d757bb1b05e73a1b42fa5c3" - integrity sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw== +"@rollup/rollup-linux-loongarch64-gnu@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.1.tgz#07027feb883408e74a3002c8e50caaedd288ae38" + integrity sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw== -"@rollup/rollup-linux-x64-gnu@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.0.tgz#4fd36a6a41f3406d8693321b13d4f9b7658dd4b9" - integrity sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg== +"@rollup/rollup-linux-powerpc64le-gnu@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.1.tgz#544ce1b0847a9c1240425e86f33daceac7ec4e12" + integrity sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w== -"@rollup/rollup-linux-x64-musl@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.0.tgz#10ebb13bd4469cbad1a5d9b073bd27ec8a886200" - integrity sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ== +"@rollup/rollup-linux-riscv64-gnu@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.1.tgz#64be13d51852ec1e2dfbd25d997ed5f42f35ea6d" + integrity sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ== -"@rollup/rollup-win32-arm64-msvc@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.0.tgz#2fef1a90f1402258ef915ae5a94cc91a5a1d5bfc" - integrity sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ== +"@rollup/rollup-linux-s390x-gnu@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.1.tgz#31f51e1e05c6264552d03875d9e2e673f0fd86e3" + integrity sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g== -"@rollup/rollup-win32-ia32-msvc@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.0.tgz#a18ad47a95c5f264defb60acdd8c27569f816fc1" - integrity sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg== +"@rollup/rollup-linux-x64-gnu@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.1.tgz#f4c95b26f4ad69ebdb64b42f0ae4da2a0f617958" + integrity sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ== -"@rollup/rollup-win32-x64-msvc@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.0.tgz#20c09cf44dcb082140cc7f439dd679fe4bba3375" - integrity sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ== +"@rollup/rollup-linux-x64-musl@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.1.tgz#ab7be89192f72beb9ea6e2386186fefde4f69d82" + integrity sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA== + +"@rollup/rollup-win32-arm64-msvc@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.1.tgz#7f12efb8240b238346951559998802722944421e" + integrity sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig== + +"@rollup/rollup-win32-ia32-msvc@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.1.tgz#353d14d6eee943004d129796e4feddd3aa260921" + integrity sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng== + +"@rollup/rollup-win32-x64-msvc@4.29.1": + version "4.29.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz#c82f04a09ba481e13857d6f2516e072aaa51b7f4" + integrity sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg== "@rtsao/scc@^1.1.0": version "1.1.0" @@ -2357,7 +2379,7 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== -"@tweenjs/tween.js@^23.1.1", "@tweenjs/tween.js@~23.1.1": +"@tweenjs/tween.js@^23.1.1", "@tweenjs/tween.js@~23.1.3": version "23.1.3" resolved "https://registry.yarnpkg.com/@tweenjs/tween.js/-/tween.js-23.1.3.tgz#eff0245735c04a928bb19c026b58c2a56460539d" integrity sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA== @@ -2442,11 +2464,16 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@1.0.5", "@types/estree@^1.0.0": +"@types/estree@*", "@types/estree@^1.0.0": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@types/estree@1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + "@types/fs-extra@9.0.13", "@types/fs-extra@^9.0.11": version "9.0.13" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" @@ -2620,14 +2647,15 @@ dependencies: "@types/jest" "*" -"@types/three@^0.163.0": - version "0.163.0" - resolved "https://registry.yarnpkg.com/@types/three/-/three-0.163.0.tgz#96f5440fcd39452d2c84dfe0c9b7a9cf0247b9e6" - integrity sha512-uIdDhsXRpQiBUkflBS/i1l3JX14fW6Ot9csed60nfbZNXHDTRsnV2xnTVwXcgbvTiboAR4IW+t+lTL5f1rqIqA== +"@types/three@^0.172.0": + version "0.172.0" + resolved "https://registry.yarnpkg.com/@types/three/-/three-0.172.0.tgz#5094852dfa781d2fe1c65eb1b4985a4aa99858b7" + integrity sha512-LrUtP3FEG26Zg5WiF0nbg8VoXiKokBLTcqM2iLvM9vzcfEiYmmBAPGdBgV0OYx9fvWlY3R/3ERTZcD9X5sc0NA== dependencies: - "@tweenjs/tween.js" "~23.1.1" + "@tweenjs/tween.js" "~23.1.3" "@types/stats.js" "*" "@types/webxr" "*" + "@webgpu/types" "*" fflate "~0.8.2" meshoptimizer "~0.18.1" @@ -2840,6 +2868,11 @@ dependencies: debug "^4.3.4" +"@webgpu/types@*": + version "0.1.52" + resolved "https://registry.yarnpkg.com/@webgpu/types/-/types-0.1.52.tgz#239995418d86de927269aca54cbadfbee04eb03a" + integrity sha512-eI883Nlag2hGIkhXxAnq8s4APpqXWuPL3Gbn2ghiU12UjLvfCbVqHK4XfXl3eLRTatqcMmeK7jws7IwWsGfbzw== + "@xmldom/xmldom@^0.8.8": version "0.8.10" resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" @@ -4476,11 +4509,6 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -entities@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - env-paths@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" @@ -5672,12 +5700,11 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -happy-dom@^15.11.7: - version "15.11.7" - resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-15.11.7.tgz#db9854f11e5dd3fd4ab20cbbcfdf7bd9e17cd971" - integrity sha512-KyrFvnl+J9US63TEzwoiJOQzZBJY7KgBushJA8X61DMbNsH+2ONkDuLDnCnwUiPTF42tLoEmrPyoqbenVA5zrg== +happy-dom@^16.3.0: + version "16.3.0" + resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-16.3.0.tgz#e138b5692cdff8e1e25d02b7730d320b4a151f65" + integrity sha512-Q71RaIhyS21vhW17Tpa5W36yqQXIlE1TZ0A0Gguts8PShUSQE/7fBgxYGxgm3+5y0gF6afdlAVHLQqgrIcfRzg== dependencies: - entities "^4.5.0" webidl-conversions "^7.0.0" whatwg-mimetype "^3.0.0" @@ -6947,9 +6974,9 @@ mz@^2.7.0: thenify-all "^1.0.0" nanoid@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" - integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + version "3.3.8" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" + integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== natural-compare-lite@^1.4.0: version "1.4.0" @@ -7783,10 +7810,10 @@ react-hot-toast@^2.4.1: dependencies: goober "^2.1.10" -react-hotkeys-hook@^4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/react-hotkeys-hook/-/react-hotkeys-hook-4.5.1.tgz#990260ecc7e5a431414148a93b02a2f1a9707897" - integrity sha512-scAEJOh3Irm0g95NIn6+tQVf/OICCjsQsC9NBHfQws/Vxw4sfq1tDQut5fhTEvPraXhu/sHxRd9lOtxzyYuNAg== +react-hotkeys-hook@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/react-hotkeys-hook/-/react-hotkeys-hook-4.6.1.tgz#db9066c07377a1c8be067a238ab16e328266345a" + integrity sha512-XlZpbKUj9tkfgPgT9gA+1p7Ey6vFIZHttUjPqpTdyT5nqQ8mHL7elxvSbaC+dpSiHUSmr21Ya1mDxBZG3aje4Q== react-is@^16.13.1: version "16.13.1" @@ -7823,10 +7850,10 @@ react-modal-promise@^1.0.2: resolved "https://registry.yarnpkg.com/react-modal-promise/-/react-modal-promise-1.0.2.tgz#122620b7f19eec73683affadfa77c543d88edc40" integrity sha512-dqT618ROhG8qh1+O6EZkia5ELw3zaZWGpMX2YfEH4bgwYENPuFonqKw1W70LFx3K/SCZvVBcD6UYEI12yzYXzg== -react-modal@^3.16.1: - version "3.16.1" - resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.16.1.tgz#34018528fc206561b1a5467fc3beeaddafb39b2b" - integrity sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg== +react-modal@^3.16.3: + version "3.16.3" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.16.3.tgz#c412d41915782e3c261253435d01468e2439b11b" + integrity sha512-yCYRJB5YkeQDQlTt17WGAgFJ7jr2QYcWa1SHqZ3PluDmnKJ/7+tVU+E6uKyZ0nODaeEj+xCpK4LcSnKXLMC0Nw== dependencies: exenv "^1.2.0" prop-types "^15.7.2" @@ -8156,28 +8183,31 @@ roarr@^2.15.3: sprintf-js "^1.1.2" rollup@^4.20.0: - version "4.21.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.21.0.tgz#28db5f5c556a5180361d35009979ccc749560b9d" - integrity sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ== + version "4.29.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.29.1.tgz#a9aaaece817e5f778489e5bf82e379cc8a5c05bc" + integrity sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw== dependencies: - "@types/estree" "1.0.5" + "@types/estree" "1.0.6" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.21.0" - "@rollup/rollup-android-arm64" "4.21.0" - "@rollup/rollup-darwin-arm64" "4.21.0" - "@rollup/rollup-darwin-x64" "4.21.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.21.0" - "@rollup/rollup-linux-arm-musleabihf" "4.21.0" - "@rollup/rollup-linux-arm64-gnu" "4.21.0" - "@rollup/rollup-linux-arm64-musl" "4.21.0" - "@rollup/rollup-linux-powerpc64le-gnu" "4.21.0" - "@rollup/rollup-linux-riscv64-gnu" "4.21.0" - "@rollup/rollup-linux-s390x-gnu" "4.21.0" - "@rollup/rollup-linux-x64-gnu" "4.21.0" - "@rollup/rollup-linux-x64-musl" "4.21.0" - "@rollup/rollup-win32-arm64-msvc" "4.21.0" - "@rollup/rollup-win32-ia32-msvc" "4.21.0" - "@rollup/rollup-win32-x64-msvc" "4.21.0" + "@rollup/rollup-android-arm-eabi" "4.29.1" + "@rollup/rollup-android-arm64" "4.29.1" + "@rollup/rollup-darwin-arm64" "4.29.1" + "@rollup/rollup-darwin-x64" "4.29.1" + "@rollup/rollup-freebsd-arm64" "4.29.1" + "@rollup/rollup-freebsd-x64" "4.29.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.29.1" + "@rollup/rollup-linux-arm-musleabihf" "4.29.1" + "@rollup/rollup-linux-arm64-gnu" "4.29.1" + "@rollup/rollup-linux-arm64-musl" "4.29.1" + "@rollup/rollup-linux-loongarch64-gnu" "4.29.1" + "@rollup/rollup-linux-powerpc64le-gnu" "4.29.1" + "@rollup/rollup-linux-riscv64-gnu" "4.29.1" + "@rollup/rollup-linux-s390x-gnu" "4.29.1" + "@rollup/rollup-linux-x64-gnu" "4.29.1" + "@rollup/rollup-linux-x64-musl" "4.29.1" + "@rollup/rollup-win32-arm64-msvc" "4.29.1" + "@rollup/rollup-win32-ia32-msvc" "4.29.1" + "@rollup/rollup-win32-x64-msvc" "4.29.1" fsevents "~2.3.2" run-parallel@^1.1.9: @@ -8543,7 +8573,16 @@ string-natural-compare@^3.0.1: resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -8637,7 +8676,14 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -8815,10 +8861,10 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -three@^0.166.1: - version "0.166.1" - resolved "https://registry.yarnpkg.com/three/-/three-0.166.1.tgz#322cfc48fff4e751cd47d61fd1558c387d098d7c" - integrity sha512-LtuafkKHHzm61AQA1be2MAYIw1IjmhOUxhBa0prrLpEMWbV7ijvxCRHjSgHPGp2493wLBzwKV46tA9nivLEgKg== +three@^0.172.0: + version "0.172.0" + resolved "https://registry.yarnpkg.com/three/-/three-0.172.0.tgz#6944a72f8439e8f7e4b034c8539ec82f5ebe0082" + integrity sha512-6HMgMlzU97MsV7D/tY8Va38b83kz8YJX+BefKjspMNAv0Vx6dxMogHOrnRl/sbMIs3BPUKijPqDqJ/+UwJbIow== thunky@^1.0.2: version "1.1.0" @@ -9494,7 +9540,16 @@ word-wrap@^1.2.5: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==